您的位置:新葡亰496net > 网络数据库 > 新葡亰496net:Sql日期时间格式转换,日期处理d

新葡亰496net:Sql日期时间格式转换,日期处理d

发布时间:2019-11-09 07:56编辑:网络数据库浏览(161)

    1. date和datetime类型的区分

    date是SQL Server 2009新引入的数据类型。它象征三个日子,不带一时间部分,能够代表的日期范围从公元元年7月1日到9999年5月二十二十七日。只需求3个字节的存款和储蓄空间。

    dateTime 日期和岁月有个别,能够象征的日期范围从公元1753年5月1日00:00:00.000 到9999年一月二十日23:59:59.997 ,准确到3.33皮秒,它需求8个字节的积存空间。

    日期管理datetime和date之间的相互调换

    生龙活虎、sql server贰零零肆中接纳convert来拿到datetime数据类型样式(全卡塔 尔(英语:State of Qatar)

    2. GETDATE()函数,再次回到当今天期时间(datetime类型卡塔 尔(英语:State of Qatar)

    SELECT GETDATE();
    返回
    2017-03-16 09:10:08.947
    

    举例创造表格M

    CREATE TABLE [dbo].[M](
        [id] [int] NULL,
        [日期] [date] NULL,
        [时间] [datetime] NULL
    ) ON [PRIMARY]
    

    能够应用GETDATE()函数插入数据

    INSERT INTO M(id, 日期, 时间) VALUES (1, CONVERT(VARCHAR, GETDATE(), 110), GETDATE());
    

    日子是数码管理中平日使用到的音讯之黄金时代。华诞、数据管理时间、安排的测度完结时间,按年、季、月的统计,这个都归于日期管理的框框。由于日期中蕴藏了年、季、月、日等居多消息,分歧的国家对日期格式、日期文字描述及星期有例外的规定,由此发生了日期管理的复杂。本章首要研商在SQL Server数据库中对日期的种种管理方法。

    日期数据格式的管理,七个示范:

    3. CONVERT()函数,格式化日期

    CONVERT() 函数是把日子转换为新数据类型的通用函数,也足以用不相同的格式呈现日期/时间数额。

    语法:

    CONVERT(data_type(length),date,style)
    
    • data_type(length) 规定目的数据类型(带有可选的尺寸卡塔尔国。date指需求转移的值。style 规定日期/时间的输出格式。
    • 能够行使的 style 值:当前时间二〇一七年四月3日 09:09:10:037
    Style ID SQL 对应格式
    1 SELECT CONVERT(varchar(100), GETDATE(), 1); 01/03/17
    2 SELECT CONVERT(varchar(100), GETDATE(), 2); 17.01.03
    3 SELECT CONVERT(varchar(100), GETDATE(), 3); 03/01/17
    4 SELECT CONVERT(varchar(100), GETDATE(), 4); 03.01.17
    5 SELECT CONVERT(varchar(100), GETDATE(), 5); 03-01-17
    6 SELECT CONVERT(varchar(100), GETDATE(), 6); 03 01 17
    7 SELECT CONVERT(varchar(100), GETDATE(), 7); 01 03, 17
    8 SELECT CONVERT(varchar(100), GETDATE(), 8); 09:09:10
    9 SELECT CONVERT(varchar(100), GETDATE(), 9); 01 3 2017 9:09:10:037AM
    10 SELECT CONVERT(varchar(100), GETDATE(), 10); 01-03-17
    11 SELECT CONVERT(varchar(100), GETDATE(), 11); 17/01/03
    12 SELECT CONVERT(varchar(100), GETDATE(), 12); 170103
    13 SELECT CONVERT(varchar(100), GETDATE(), 13); 03 01 2017 09:09:10:037
    14 SELECT CONVERT(varchar(100), GETDATE(), 14); 09:09:10:037
    20 SELECT CONVERT(varchar(100), GETDATE(), 20); 2017-01-03 09:09:10
    21 SELECT CONVERT(varchar(100), GETDATE(), 21); 2017-01-03 09:09:10.037
    22 SELECT CONVERT(varchar(100), GETDATE(), 22); 01/03/17 9:09:10 AM
    23 SELECT CONVERT(varchar(100), GETDATE(), 23); 2017-01-03
    24 SELECT CONVERT(varchar(100), GETDATE(), 24); 09:09:10
    25 SELECT CONVERT(varchar(100), GETDATE(), 25); 2017-01-03 09:09:10.037
    100 SELECT CONVERT(varchar(100), GETDATE(), 100); 01 3 2017 9:09AM
    101 SELECT CONVERT(varchar(100), GETDATE(), 101); 01/03/2017
    102 SELECT CONVERT(varchar(100), GETDATE(), 102); 2017.01.03
    103 SELECT CONVERT(varchar(100), GETDATE(), 103); 03/01/2017
    104 SELECT CONVERT(varchar(100), GETDATE(), 104); 03.01.2017
    105 SELECT CONVERT(varchar(100), GETDATE(), 105); 03-01-2017
    106 SELECT CONVERT(varchar(100), GETDATE(), 106); 03 01 2017
    107 SELECT CONVERT(varchar(100), GETDATE(), 107); 01 03, 2017
    108 SELECT CONVERT(varchar(100), GETDATE(), 108); 09:09:10
    109 SELECT CONVERT(varchar(100), GETDATE(), 109); 01 3 2017 9:09:10:037AM
    110 SELECT CONVERT(varchar(100), GETDATE(), 110); 01-03-2017
    111 SELECT CONVERT(varchar(100), GETDATE(), 111); 2017/01/03
    112 SELECT CONVERT(varchar(100), GETDATE(), 112); 20170103
    113 SELECT CONVERT(varchar(100), GETDATE(), 113); 03 01 2017 09:09:10:037
    114 SELECT CONVERT(varchar(100), GETDATE(), 114); 09:09:10:037
    120 SELECT CONVERT(varchar(100), GETDATE(), 120); 2017-01-03 09:09:10
    121 SELECT CONVERT(varchar(100), GETDATE(), 121); 2017-01-03 09:09:10.037
    126 SELECT CONVERT(varchar(100), GETDATE(), 126); 2017-01-03T09:09:10.037
    130 SELECT CONVERT(varchar(100), GETDATE(), 130); 5 ???? ?????? 1438 9:09:10:037AM
    131 SELECT CONVERT(varchar(100), GETDATE(), 131); 5/04/1438 9:09:10:037AM

    日子类型概述

    SQL Server中的日期类型富含datetime和smalldatetime,仅能管理能够分辨为1753年~9999年间的日子的值,未有独立的日期型或时间型。

    CONVERT(varchar(16), 时间一, 20) 结果:2007-02-01 08:02/*岁月平常为getdate()函数或数量表里的字段*/

    1.datetime

    datetime类型管理从1753年七月1日~9999年八月二二十四日的日子和岁月数额,准确度为百分之三秒。即:对于0.000~0.001、0.009的日期值,调度为0.000;对于0.002~0.004的日子值,调治为0.003;对于0.005~0.008的日期值,调节为0.007。

    例如,下边的代码在输入时,其时间准确度为百分之一秒,但经数据库保存后再呈现出来,其结果就曾经做了拍卖。

    DECLARE @t TABLE(date char(21))

    INSERT @t SELECT '1900-1-1 00:00:00.000'

    ...

    INSERT @t SELECT '1900-1-1 00:00:00.009'

    SELECT date,调换后的日期=CAST(date as datetime) FROM @t

     

    /*--结果

    date                     转变后的日子



    1900-1-1 00:00:00.000    1900-01-01 00:00:00.000
    ...
    1900-1-1 00:00:00.000    1900-01-01 00:00:00.010

    --*/

    datetime的囤积长度为8字节,日期和时间各用4个字节存储,第一个4字节囤积自一九〇四年十月1日在此之前或之后的流年(以一九〇一年1十月1日为分界点,在一九〇一年七月1日事先的日子的时局小于0,在一九〇二年三月1日以往的日期的气数大于0卡塔尔国。其它一个4字节囤积以清晨(00:00:00.000卡塔 尔(阿拉伯语:قطر‎后阿秒数所代表的天天的光阴。

    例如说,下边包车型客车代码演示了datetime变量中,仅富含单纯的日子和单独的时间时,日期存款和储蓄的十九进制存储表示结果。

    DECLARE @dt datetime

     

    --单纯的日子

    SET @dt='1900-1-2'

    SELECT CAST(@dt as binary(8))

    --结果: 0x0000000100000000

     

    --单纯的年华

    SET @dt='00:00:01'

    SELECT CAST(@dt as binary(8))

    --结果: 0x000000000000012C

    CONVERT(varchar(10), 时间一, 23) 结果:2007-02-01 /*varchar(10)表示日期输出的格式,倘诺非常短会爆发截取*/

    2.smalldatetime

    smalldatetime类型处理从一九零三年十月1日~2079年5月6 日的日期和时间数额,正确到分钟。29.998秒或更低的smalldatetime值向下舍入为最相近的分钟,29.999秒或越来越高的smalldatetime值向上舍入为最临近的分钟。

    smalldatetime的仓库储存长度为4字节,第八个2字节储存自1901年四月1日之后的流年。此外二个2字节囤积凌晨(00:00:00.000卡塔 尔(阿拉伯语:قطر‎后的秒钟数。

    举例,下边包车型大巴代码演示了smalldatetime变量中,仅满含单纯的日子和意气风发味的岁月时,日期存款和储蓄的十三进制存款和储蓄表示结果。

    DECLARE @dt smalldatetime

    --单纯的日子

    SET @dt='1900-1-2'

    SELECT CAST(@dt as binary(4))

    --结果: 0x00010000

    --单纯的日子

    SET @dt='00:10'

    SELECT CAST(@dt as binary(4))
    --结果: 0x0000000A

    言语及查询结果:
    Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
    Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06
    Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16
    Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06
    Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06
    Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06
    Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06
    Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06
    Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46
    Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM
    Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06
    Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16
    Select CONVERT(varchar(100), GETDATE(), 12): 060516
    Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937
    Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967
    Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47
    Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157
    Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM
    Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16
    Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47
    Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250
    Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM
    Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2006
    Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.16
    Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006
    Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006
    Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006
    Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006
    Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006
    Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49
    Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM
    Select CONVERT(varchar(100), GETDATE(), 110): 05-16-2006
    Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16
    Select CONVERT(varchar(100), GETDATE(), 112): 20060516
    Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513
    Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547
    Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49
    Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700
    Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827
    Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM
    Select CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM

    日子管理函数

    日子由年、月、日、时等四个部分构成,它的拍卖相对复杂,由此,SQL Server提供了大气的日子管理函数,用以完毕各个日期数据的拍卖。精通好那些函数,对产生数据库的各样日期管理特别须要,本节将介绍多少个常用的日期管理函数。期增减函数能够对日期内定部分的值进行增减,并重回管理后的日期值,SQL Server提供的日子增减函数为DATEADD。

    DATEADD的现实性语法如下:DATEADD ( datepart , number, date )

    其间囊括以下参数。

    ¡  datepart:是规定应向日期的哪一部分赶回新值的参数。表2-1列出了SQL Server扶助的日期部分、缩写及意义。

                        DATEADD、DATEDIFF帮忙的日子部分、缩写及意义

    日 期 部 分

    缩    写

    含    义

    Year

    yy , yyyy

    年份

    Quarter

    qq , q

    季度

    Month

    mm , m

    月份

    Dayofyear

    dy,y

    Day

    dd , d

    Week

    wk , ww

    星期

    Hour

    Hh

    小时

    Minute

    mi , n

    分钟

    新葡亰496net:Sql日期时间格式转换,日期处理datetime和date之间的相互转换。Second

    ss , s

    Millisecond

    Ms

    毫秒

     

    ¡  number:是用来扩充datepart的值。正数表示扩张,负数表示减少,如若钦定的长短整数值,则忽视此值的小数部分,不做四舍五入管理。比方,DATEADD(Day,1.7,date卡塔 尔(英语:State of Qatar),表示date增添1天。

    ¡  date:是回去datetime或smalldatetime值或日期格式字符串的表明式。

    设若date是smalldatetime,则赶回smalldatetime,不然重回datetime。date为smalldatetime,Datepart为Second(ss,s卡塔 尔(阿拉伯语:قطر‎或Millisecond(ms卡塔 尔(阿拉伯语:قطر‎时,再次回到值将依附日期增减的结果调度到分钟;date为datetime,Datepart为Millisecond(ms卡塔尔国时,再次回到值将基于日期增减的结果调治为百分之三秒。调度法则能够参照2.1节的连带表明。

    date允许直接与number实行增减总结,即对于DATEADD(Day,number,date卡塔尔,等同于date number。

    说明:
    使用 CONVERT:

     日期新闻获得函数

    日期新闻得到函数用于获取日期钦赐部分的相关音信,常用的日期音讯获取函数如表2-2所示。

                                          常用的日子音信获得函数

    功 能 说 明

    语    法

    参数及再次来到值数据类型表明

    重回代表钦点日期的钦命日期部分的字符串

    DATENAME(datepart,date)

    datepart是内定应重回的日期部分的参数,其定义如表2-3所示。date是回来datetime或smalldatetime值或日期格式字符串的表达式。DATENAME函数再次回到nvarchar,DATEPART函数再次回到int

    再次回到代表内定日期的钦赐日期部分的整数

    DATEPART(datepart,date)

    回去表示钦命日期中的年份的大背头

    YEAR(date)

    返回int

    归来表示钦命日期中的月份的整数

    MONTH(date)

    返回int

    回到表示内定日期中的天的大背头

    DAY(date)

    返回int

                      DATENAME、DATEPART帮助的日期部分、缩写及意义

    日 期 部 分

    缩    写

    含    义

    Year

    yy , yyyy

    年份

    Quarter

    qq , q

    季度

    Month

    mm , m

    月份

    Dayofyear

    dy , y

    Day

    dd , d

    Week

    wk , ww

    自年终带头的第多少个星期

    Weekday

    Dw

    星期几(举个例子星期三、星期三卡塔 尔(阿拉伯语:قطر‎

    Hour

    Hh

    小时

    Minute

    mi , n

    分钟

    Second

    ss , s

    秒。date为smalldatetime时,始终再次来到0

    Millisecond

    新葡亰496net:Sql日期时间格式转换,日期处理datetime和date之间的相互转换。Ms

    阿秒。date为smalldatetime时,始终再次来到0,为datetime时,再次来到百份之三秒

     

    DATEPART(Week,date卡塔 尔(阿拉伯语:قطر‎再次回到的礼拜总计办法,是依照周末为八日的第一天,这一点与中黄炎子孙民共和国人的日子管理习于旧贯不相同,在应用时要小心这一点。DATENAME函数再次来到内定日期的钦定日期部分的字符串,其回到的现实性字符串值,与SET DATEFIENCOREST及SET DATELANGUAGE选项的装置有关。使用DATEPART(Weekday,date卡塔尔时,其回来的值与SET DATEFI本田UR-VST选项的设置有关,具体的将要2.3节中表达。

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

      日期差值计算函数

    日子差值计算函数用于总括七个给定日期钦命部分的界线数,SQL Server提供的日期差值计算函数为DATEDIFF。

    DATEDIFF的求实语法如下:

    DATEDIFF ( datepart , startdate , enddate )

    内部包括以下参数。

    ¡  datepart:规定了应在日期的哪后生可畏部分计量差额,其定义如表2-1所示。

    ¡  startdate:规定了总计的始发日期。

    ¡  enddate:规定了总括的安息日期。

    回到类型:integer

    测算的早先日期和休息日期,能够是日期或日期格式的字符串。总计的诀假设从enddate减去startdate。假使startdate比enddate晚,重临负值。当结果大于整数值范围,DATEDIFF就发出错误。对于飞秒,最大数是24天20时辰31分钟23.647秒。对于秒,最大数是68年。

    计量跨分钟、秒和飞秒那么些边界的主意,使得DATEDIFF给出的结果在全路数据类型中是均等的。结果是带正负号的整数值,其非常跨第叁个和首个日中间的datepart边界数。比如,在2006年1三月4日和二〇〇五年1月10日里边的月份数是1。

    参数
    expression

     别的日期处理相关函数

    别的常用的日子管理有关函数蕴涵以下多少个。

    是任何有效的 Microsoft® SQL Server™ 表明式。。 

    1.GETDATE

    新葡亰496net,GETDATE依据datetime值重返当前系统日期和岁月。

    GETDATE的语法如下:

    GETDATE()

    归来类型:datetime

    data_type

    2.ISDATE

    ISDATE鲜明输入的表明式是不是可行日期。

    在输入日期表明式时,日期都是以日期格式的字符串提供的,由于不一样的区域有两样的日期格式,所以并不能够承保输入的日子表明式能够被SQL Server识别,这种景况下,就供给用ISDATE来推断日期表明式能还是无法正确地被SQL Server识别了。

    ISDATE的语法如下:

    ISDATE(expression)

    回去类型:int

    对象种类所提供的数据类型,饱含 bigint 和 sql_variant。不可能使用客商定义的数据类型。
    length

    3.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

    nchar、nvarchar、char、varchar、binary 或 varbinary 数据类型的可选参数。 

    style

    日期格式样式,借以将 datetime 或 smalldatetime 数据转变为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型卡塔 尔(英语:State of Qatar);只怕字符串格式样式,借以将 float、real、money 或 smallmoney 数据调换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型卡塔尔国。

    SQL Server 帮衬使用科威特算法的阿拉伯样式中的数据格式。

    在表中,侧边包车型地铁两列表示将 datetime 或 smalldatetime 转变为字符数据的 style 值。给 style 值加 100,可获得富含世纪数位的几个人年份 (yyyy)。

    不带世纪数位 (yy) 带世纪数位 (yyyy) 
    标准 
    输入/输出** 

    • 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-dd Thh:mm:ss.mmm(不含空格卡塔 尔(英语:State of Qatar) 
    • 130* Hijri**** dd mon yyyy hh:mi:ss:mmmAM 
    • 131* Hijri**** dd/mm/yy hh:mi:ss:mmmAM 

    * 暗中认可值(style 0 或 100、9 或 109、13 或 113、20 或 120、21 或 121卡塔尔始终重临世纪数位 (yyyy)。
    ** 当转换为 datetime时输入;当调换为字符数据时输出。
    *** 特意用来 XML。对于从 datetime或 smalldatetime 到 character 数据的转变,输出格式如表中所示。对于从 float、money 或 smallmoney 到 character 数据的退换,输出等同于 style 2。对于从 real 到 character 数据的转变,输出等同于 style 1。
    ****Hijri 是独具二种变化情势的日历系统,Microsoft® SQL Server™ 二零零四使用当中的科威特算法。

    驷不比舌 暗许情状下,SQL Server 根据结束年份 2049 解释两位数字的年度。即,两位数字的年份 49 被讲解为 2049,而两位数字的年份 50 被解说为 一九五〇。好多客商端应用程序(比如那个基于 OLE 自动化对象的客商端应用程序卡塔 尔(英语:State of Qatar)都施用 2030 作为达成年份。SQL Server 提供二个安顿选项("两位数字的利落年份"卡塔尔,借以更正 SQL Server 所使用的终结年份并对日期进行朝气蓬勃致性管理。可是最安全的点子是点名四个人数字年份。

    当从 smalldatetime 转换为字符数据时,满含秒或纳秒的体制就要此些任务上出示零。当从 datetime 或 smalldatetime 值实行改变时,能够通过运用合适的 char 或 varchar 数据类型长度来截断无需的日期部分。

     

    二、DATENAME函数的用法

    在SQL数据库中,DATENAME函数的意义是是从日期中领取钦定部分多少,比如大家想赢妥贴今天子中的年份,月份等音讯,就能够使用该函数.重返类型是nvarchar.

    具体的语法如下:

    DATENAME(param,date);

    param是点名要回来日期部分的参数,包罗上边二种:

    日期部分 缩写

    year  

    yy, yyyy

    quarter 

    qq, q

    month

    mm, m

    dayofyear

    dy, y

    day

    dd, d

    week

    wk, ww

    weekday

    dw

    hour

    hh

    minute

    mi, n

    second

    ss, s

    millisecond

    ms

    date正是钦命的日期.

    例:

    select getYear=DATENAME(year,getdate())    --结果:2016
    select getMonth=DATENAME(month,getdate())  --结果:08
    select getDay=DATENAME(day,getdate())      --结果:18
    

     

    三、函数DATENAME()与DATEPART()的区别

    DateName再次回到的是字符型的,DatePart再次回到的是int型的

    SELECT MonthName=DateName(month, getdate()) --结果:08
    SELECT MonthName=DatePart(month, getdate()) --结果:8
    

     

     

    参考:子夜.  Sql日期时间格式转变

     

     

    本文由新葡亰496net发布于网络数据库,转载请注明出处:新葡亰496net:Sql日期时间格式转换,日期处理d

    关键词: