• sql数据库时间转换convert


    CONVERT

    CONVERT将某种数据类型的表达式显式转换为另一种数据类型。

    严格来说,CONVERT不属于日期处理函数,只是它被经常用于日期处理中,所以这里把它列入了其他日期处理函数,下面是CONVERT的用法描述(只重点说明在日期处理中的应用)。

    CONVERT的具体语法如下:

    CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

    其中包括以下参数。

    ¡ expression:是要转换数据类型的有效SQL Server表达式。

    ¡ data_type:是expression转换后的数据类型,length是对于有精度定义需要的data_type的精度定义,对于没有精度定义需要的data_type,该参数可以省略。

    ¡ style:定义数据类型转换时的格式,对于日期类型的转换,它的定义如表2-4所示。

    表2-4                                      style在日期转换中的说明

    不带世纪数位

    带世纪数位

    标    准

    输入/输出

    0或100

    默认值

    mon dd yyyy hh:miAM(或 PM)

    1

    101

    美国

    mm/dd/yyyy

    2

    102

    ANSI

    yy.mm.dd

    3

    103

    英国/法国

    dd/mm/yy

    4

    104

    德国

    dd.mm.yy

    5

    105

    意大利

    dd-mm-yy

    6

    106

    dd mon yy

    7

    107

    mon dd, yy

    8

    108

    hh:mm:ss

    9或109

    默认值+毫秒

    mon dd yyyy hh:mi:ss:mmmAM(或PM)

    10

    110

    美国

    mm-dd-yy

    11

    111

    日本

    yy/mm/dd

    12

    112

    ISO

    yymmdd

    13或113

    欧洲默认值+毫秒

    dd mon yyyy hh:mm:ss:mmm(24h)

    14

    114

    hh:mi:ss:mmm(24h)

    20或120

    ODBC规范

    yyyy-mm-dd hh:mm:ss[.fff]

    21或121

    ODBC规范(带毫秒)

    yyyy-mm-dd hh:mm:ss[.fff]

    126

    ISO8601

    yyyy-mm-ddThh:mm:ss.mmm

    130

    Hijri

    dd mon yyyy hh:mi:ss:mmmAM

    131

    Hijri

    dd/mm/yy hh:mi:ss:mmmAM

    说明:

    ① 输入/输出:“输入”表示从字符串转换为日期时字符串的日期格式,“输出”指从日期转换为字符串时的日期字符串格式。

    ② Hijri:是具有几种变化形式的日历系统,SQL Server使用其中的科威特算法。

    当从smalldatetime转换为字符数据时,由于smalldatetimer只保存到分钟的数据,因此,对于包含秒或毫秒的样式,将在秒或毫秒的位置上显示零。当从datetime或smalldatetime值进行转换时,可以通过使用适当的char或varchar数据类型长度来截断不需要的日期部分。

    注意:

    在SQL Server中,由于直接提供的日期均是以日期格式的字符串提供,所以在使用CONVERT进行日期格式转换时,要先把日期格式的字符串转换为日期型,然后才能利用CONVERT进行日期格式转换,否则就变成字符串转换为字符串,此时的style选项是无效的。

    返回类型:由参数data_type确定。

    下面是利用CONVERT进行日期转换的简单示例:

    /*== 字符转换为日期时,Style的使用 ==*/

    --1. Style=101时,表示日期字符串为:mm/dd/yyyy格式

    SELECT CONVERT(datetime,'11/1/2003',101)

    --结果:2003-11-01 00:00:00.000

    --2. Style=101时,表示日期字符串为:dd/mm/yyyy格式

    SELECT CONVERT(datetime,'11/1/2003',103)

    --结果:2003-01-11 00:00:00.000 

    /*== 日期转换为字符串 ==*/

    DECLARE @dt datetime

    SET @dt='2003-1-11'

    --1. Style=101时,表示将日期转换为:mm/dd/yyyy 格式

    SELECT CONVERT(varchar,@dt,101)

    --结果:01/11/2003

    --2. Style=103时,表示将日期转换为:dd/mm/yyyy 格式

    SELECT CONVERT(varchar,@dt,103)

    --结果:11/01/2003

     /*== 这是很多人经常犯的错误,对非日期型转换使用日期的style样式 ==*/

    SELECT CONVERT(varchar,'2003-1-11',101)

    --结果:2003-1-11

  • 相关阅读:
    Linux 压缩解压文件
    六天玩转javascript:javascript变量与表达式(2)
    六天玩转javascript:javascript变量与表达式(1)
    HTML5服务器端推送事件 解决PHP微信墙推送问题
    signalR制作微信墙 开源
    PhpStorm下Laravel代码智能提示
    ubuntu下使用nginx部署Laravel
    PHP微信墙制作,开源
    信鸽推送.NET SDK 开源
    14年总结
  • 原文地址:https://www.cnblogs.com/JohnnyBao/p/3893720.html
Copyright © 2020-2023  润新知