日期相关资料详细介绍_MsSql_脚本之家,日期和时间函数

返回当前使用的语言的名称。

SELECT day(GetDate()) –返回8

值缩 写Access 和 ASP说明YearYyyyyy年 1753 ~ 9999QuarterQqq季 1 ~ 4MonthMmm月1 ~ 12Day of yearDyy一年的日数,一年中的第几日 1-366DayDdd日,1-31WeekdayDww一周的日数,一周中的第几日 1-7WeekWkww周,一年中的第几周 0 ~ 51HourHhh时0 ~ 23MinuteMin分钟0 ~ 59SecondSss秒 0 ~ 59MillisecondMs-毫秒 0 ~ 999

TIMEFROMPARTS

SELECT DATEADD(week,1,GetDate()) --当前日期加一周后的日期

参数 interval的设定值如下:

返回表示指定 date 的指定 datepart 的字符串,DATENAME 可用于选择列表 WHERE、HAVING、GROUP BY 和 ORDER BY 子句中

SELECT MONTH(GETDATE()) --返回11

一、Sql Server中的日期与时间函数 1. 当前系统日期、时间 select getdate() 2. dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值 例如:向日期加上2天 select dateadd --返回:2004-10-17 00:00:00.000 3. datediff 返回跨两个指定日期的日期和时间边界数。 select datediff(day,'2004-09-01','2004-09-18') --返回:17 4. datepart 返回代表指定日期的指定日期部分的整数。 select DATEPART --返回 10 5. datename 返回代表指定日期的指定日期部分的字符串 select datename(weekday, '2004-10-15') --返回:星期五 6. day --可以与datepart对照一下 select 当前日期=convert,120) ,当前时间=convert,114) select datename select 本年第多少周=datename ,今天是周几=datename 二、SQL日期格式转换 select CONVERT, 120 ) 2004-09-12 11:06:08 select replace(replace(replace(CONVERT, 120 ),'-',''),' ',''),':','') 20040912110608 select CONVERT , getdate 2004/09/12 select CONVERT , getdate 20040912 select CONVERT , getdate 2004.09.12 其它我不常用的日期格式转换方法: select CONVERT , getdate 09/12/2004 select CONVERT , getdate 12/09/2004 select CONVERT , getdate 12.09.2004 select CONVERT , getdate 12-09-2004 select CONVERT , getdate 12 09 2004 select CONVERT , getdate 09 12, 2004 select CONVERT , getdate 11:06:08 select CONVERT , getdate 09 12 2004 1 select CONVERT , getdate 09-12-2004 select CONVERT , getdate 12 09 2004 1 select CONVERT , getdate 11:06:08.177 举例: 1.GetDate() 用于sql server :select GetDate() 2.DateDiff('s','2005-07-20','2005-7-25 22:56:32')返回值为 514592 秒 DateDiff('d','2005-07-20','2005-7-25 22:56:32')返回值为 5 天 3.DatePart('w','2005-7-25 22:56:32')返回值为 2 即星期一 DatePart('d','2005-7-25 22:56:32')返回值为 25即25号 DatePart('y','2005-7-25 22:56:32')返回值为 206即这一年中第206天 DatePart('yyyy','2005-7-25 22:56:32')返回值为 2005即2005年 具体的语法: 日期函数用来操作DATETIME 和SMALLDATETIME 类型的数据,执行算术运算。与其它函数一样,可以在 Select 语句的Select 和Where 子句以及表达式中使用日期函数。其使用方法如下: 日期函数参数,其中参数个数应不同的函数而不同。 ·DAY 函数语法如下: DAY DAY() 函数返回date_expression 中的日期值。 ·MONTH 函数语法如下: MONTH MONTH() 函数返回date_expression 中的月份值。 与DAY 函数的参数为整数时,一律返回整数值1,即SQL Server 认为其 是1900 年1 月。 ·YEAR 函数语法如下: YEAR YEAR() 函数返回date_expression 中的年份值。 提醒:在使用日期函数时,其日期值应在1753年到9999年之间,这是SQL Server系统所能识别的日期范 围,否则会出现错误。 ·DATEADD 函数语法如下: DATEADD (, , ) DATEADD() 函数返回指定日期date 加上指定的额外日期间隔number 产生的新日期。参数“datepart ” 在日期函数中经常被使用,它用来指定构成日期类型数据的各组件,如年、季、月、日、星期等。 其取值如表4-9 所示: ·DATEDIFF 函数语法如下: DATEDIFF() (, , ) DATEDIFF() 函数返回两个指定日期在datepart 方面的不同之处,即date2 超过date1的差距值,其 结果值是一个带有正负号的整数值。针对不同的datepart, DATEDIFF()函数所允许的最大差距值不 一样,如:datepart 为second 时,DATEDIFF() 函数所允许的最大差距值为68: 年datepart 为 millisecond 时,DATEDIFF() 函数所允许的最大差距值为24 天20 小时30 分23 秒647 毫秒。 ·DATENAME 函数语法如下: DATENAME > DATENAME() 函数以字符串的形式返回日期的指定部分此部分。由datepart 来指定。 ·DATEPART 函数语法如下: DATEPART DATEPART() 函数以整数值的形式返回日期的指定部分。此部分由datepart 来指定。 DATEPART 等同于DAY DATEPART 等同于MONTH DATEPART 等同于YEAR ·GETDATE 函数语法如下: GETDATE 函数以DATETIME 的缺省格式返回系统当前的日期和时间,它常作为其它函数或命令的参数使用。 在开发数据库应用中,经常会遇到处理时间的问题,如查询指定时间的记录等。下面就这些常见的问题 ,结合自己的一些经验,和大家探讨一下这类问题。 首先介绍一下,SQL Server里处理时间的几个主要函数的用法: getdate()函数:取得系统当前的日期和时间。返回值为datetime类型的。 用法:getdate() 例子: select getdate() as dte,dateadd as nowdat 输出结果: dte nowdat 1999-11-21 19:13:10.083 1999-11-20 19:13:10.083 datepart()函数:以整数的形式返回时间的指定部分。 用法:datepart 参数说明:datepart时要返回的时间的部分,常用取值year、month、day、hour、minute。 date是所指定的时间。 例子: SELECT DATEPART AS 'Month Number' 输出结果: Month Number 11 dateadd()函数:通过给指定的时间的指定部分加上一个整数值以返回一个新时间值。 用法:dateadd 参数说明:datepart number要增加的值,整型,可正可负,正值返回date之后的时间值,负值返回date 之前的时间值 例子: select getdate() as today select dateadd select dateadd 输出: today 1999-11-21 19:42:41.410 yesterday 1999-11-20 19:42:41.410 tomorrow 1999-11-22 19:42:41.410 datediff()函数:返回两个时间以指定时间部分来计算的差值。返回整数值。如1991-6-12和1991-6-21 之间以天 来算相差9天,1998-6-12和1999-6-23按年算相差1年,1999-12-1和1999-3-12按月算相差9个月 用法:datediff 参数说明:datepart date1、date2 例子: select datediff(month,'1991-6-12','1992-6-21') as a附图 函数参数/功能GetDate返回系统目前的日期与时间DateDiff 以interval 指定的方式,返回date2 与date1两个日期之间的差值 date2-date1DateAdd 以interval指定的方式,加上number之后的日期DatePart 返回日期date中,interval指定部分所对应的整数值DateName 返回日期date中,interval指定部分所对应的字符串名称**

所以这里就能体现出“设计”的重要性。

SELECT DATEDIFF(month,'2006-10-11','2006-11-01') --返回1

对指定的时间返回time值。

(5)一个季度多少天

YYYY-MM-DD hh:mm:ss[.

SELECT CONVERT(VARCHAR(10),GETDATE(),120) –返回2006-11-08

返回数据类型

SELECT DATEADD(week, DATEDIFF(week,'1900-01-01',getdate()), '1900-01-01')  --返回2006-11-06 00:00:00.000

SELECT DATEADD(week, DATEDIFF(week,0,getdate()),0)     

00:00:00.0000000 到 23:59:59.9999999

declare @m tinyint,@time smalldatetime

datetimeoffset

返回跨两个指定日期的日期边界数和时间边界数。

不适用

   返回表示指定日期的指定日期部分的字符串。Datepart详见下面的列表.

具有确定性

(3)当前季度的第一天

DATETIMEOFFSETFROMPARTS (year,month,day,hour,minute,seconds,fractions,hour_offset,minute_offset,precision)

--下面两句是等效的
SELECT DATENAME(WEEKDAY,0)
SELECT DATENAME(WEEKDAY,'1900-01-01')

时区偏移量

(7)MONTH ( date )

sp_helplanguage[ [@language =]'*language*']

SELECT Day(dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,'2006-02-03')+1,0)))  —返回28

time

SELECT DATEADD(quarter, DATEDIFF(quarter,0,getdate()), 0)—返回2006-10-01 00:00:00.000

 

SET DATEFORMAT

(4)日期部分的列表

@*number_var*}

(2)DATEPART ( datepart , date )

SWITCHOFFSET

2、取特定日期

|

(4)DATEDIFF ( datepart , startdate , enddate )

返回包含计算机的日期和时间的datetime2值,SQL Server 的实例正在该计算机上运行。

(2)计算哪一天是本周的星期一

函数

(4)如何取得某个月的天数

返回包含计算机的日期和时间的datetime2值,SQL Server 的实例正在该计算机上运行。

SELECT DATEPART(year,Getdate()) –返回2006

返回表示指定date的指定datepart的整数。

select @time=datename(year,getdate())+'-'+convert(varchar(10),@m)+'-01'
select datediff(day,@time,dateadd(mm,3,@time)) —返回92

一、日期类型:

返回一个整数,表示指定日期的天datepart 部分。

TIMEFROMPARTS (hour,minute,seconds,fractions,precision)

返回表示指定日期的“月”部分的整数。

SYSDATETIMEOFFSET

SELECT YEAR(GETDATE()) --返回2006

SYSUTCDATETIME

SELECT GetDate()   --返回2006-11-08 13:37:56.233

int

SELECT DateName(weekday,Getdate()) --Wednesday

如果 expression 是有效的 datetime或 datetime 值,则返回 1;否则,返回 0

    返回给指定日期加上一个时间间隔后的新datetime 值。

1753-01-01 到 9999-12-31

(3)SET DATEFORMAT { format | @format_var }

SET LANGUAGE { [ N ]'*language*'

日期部分

缩写

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

确定性

(6)获得年月日(yyyy-MM-dd)

为指定的日期和时间返回smalldatetime值。

(8)YEAR ( date )

|

设置用于输入datetime 或smalldatetime 数据的日期部分(月/日/年)的顺序。
...有效参数包括mdy、dmy、ymd、ydm、myd 和dym。
...该设置仅用在将字符串转换为日期值时的解释中。它不影响日期值的显示。
...SET DATEFORMAT 的设置是在执行或运行时设置,而不是在分析时设置。
...SET DATEFORMAT 将覆盖SET LANGUAGE 的隐式日期格式设置。
下面是例子:
-- Set date format to year, day, month.
SET DATEFORMAT ydm;
GO
DECLARE @datevar DATETIME;
SET @datevar = '1998/31/12';
SELECT @datevar AS DateVar;
GO
-- Set date format to year, month, day.
SET DATEFORMAT ymd;
GO
DECLARE @datevar DATETIME;
SET @datevar = '1998/12/31';
SELECT @datevar AS DateVar;
GO

datetime

(5)DAY ( date )

返回值

数据类型

范围

精确度

datetime

1753 年 1 月 1 日到 9999 年 12 月 31 日

3.33 毫秒

smalldatetime

1900 年 1 月 1 日到 2079 年 6 月 6 日

1 分钟

datetime2

SELECT DateName(day,Getdate()) –返回8

datetimeoffset

(2)SET DATEFIRST { number | @number_var }

100 纳秒

3、其它

对指定的日期和时间返回datetime2值。

(1)--下面的示例将日期指定为数字。数据库引擎将0 解释为1900 年1 月1 日。
SELECT MONTH(0), DAY(0), YEAR(0) –返回1    1   1900

SWITCHOFFSET更改 DATETIMEOFFSET 值的时区偏移量并保留 UTC 值。

(1)获得当前日期是星期几

将一周的第一天设置为从 1 到 7 的一个数字。7为默认的第一天,即周日。查看 SET DATEFIRST 的当前设置,请使用@@DATEFIRST函数。注意此值是在运行时执行

SET DATEFIRST 1 --表示一周的第一天是“星期一"
SELECT DATENAME(WEEKDAY,GETDATE()) --Wednesday
SELECT DATEPART(weekday,GETDATE()) --返回3
--查看当前设置情况
select @@DATEFIRST

确定性

1、常用日期方法(下面的GetDate() = '2006-11-08 13:37:56.233')

sp_helplanguage

以datetime 值的SQL Server 2005 标准内部格式返回当前系统日期和时间。

具有确定性

将一周的第一天设置为从1 到7 的一个数字。

CURRENT_TIMESTAMP

(3)DATEADD (datepart , number, date )

返回值

select @m=month(getdate())
select @m=case when @m between 1 and 3 then 1
                       when @m between 4 and 6 then 4
                       when @m between 7  and 9 then 7
                       else 10 end

SYSUTCDATETIME

(1)DATENAME ( datepart ,date )

@@DATEFIRST

    返回表示指定日期的指定日期部分的整数。

DATETIME2FROMPARTS

(6)GETDATE()

不具有确定性

返回表示指定日期的“年”部分的整数。

返回包含指定日期的月份的最后一天。

YYYY-MM-DD hh:mm:ss[.

SET DATEFORMAT {format

SET DATEFORMAT{format|@format_var}:

int

GO

用来验证日期和时间值的函数

MONTH

具有确定性

语法

具有datetime参数的小数精度的datetimeoffset

SET LANGUAGE 不是日期或时间函数。

确定性

DATENAME

DATENAME (datepart,date)

ISDATE

不适用

|

数据类型

SMALLDATETIMEFROMPARTS (year,month,day,hour,minute)

EOMONTH (start_date[,month_to_add] )

DATENAME

SET DATEFIRST {number

但是,语言设置会影响日期函数的输出。

@@DATEFIRST

具有确定性

返回包含计算机的日期和时间的datetime2值,SQL Server 的实例正在该计算机上运行。

函数

设置会话语言:虽然这里是语言,但是会影响日期的格式:

nnn]

ISDATE

GETDATE

具有确定性

返回包含计算机的日期和时间的datetime2值,SQL Server 的实例正在该计算机上运行。

MONTH

YYYY-MM-DD hh:mm:ss[.

datetimeoffset具有其小数精度:DATETIMEOFFSET

函数

具有确定性

不具有确定性

将一周的第一天设置为从 1 到 7 的一个数字。

datetime2

具有确定性

返回数据类型

YYYY-MM-DD hh:mm:ss

对指定的日期和时间返回datetimeoffset值,即具有指定的偏移量和精度。

DATEADD (datepart,number,date)

具有确定性

具有确定性

SELECT @@DATEFIRST;

TODATETIMEOFFSET

确定性

GETDATE

SYSDATETIME

函数

SYSDATETIME ()

@*language_var*}

时区偏移量未包含在内。

datetime

YEAR

具有确定性

用户定义的秒的小数精度

返回表示指定日期的指定datepart的字符串。

不具有确定性

每一种日期类型有其使用范围,当然以刚好适用为最佳选择,切记不要为了方便,什么都用datetime类型。从性能方面会有很大影响,举个例子:

time(*precision*)

DATEADD

SET DATEFIRST { number | @number_var }:

不具有确定性

返回表示指定date的“月”部分的整数。

DATETIME2FROMPARTS (year,month,day,hour,minute,seconds,fractions,precision)

具有确定性

GETUTCDATE

date

nnnnnnn] [+|-]hh:mm

设置会话和系统消息的语言环境。

时区偏移量未包含在内。

datetime2

DATEFROMPARTS (year,month,day)

返回指定的 startdate 和 enddate 之间所跨的指定 datepart 边界的计数。

用来获取日期和时间部分的函数

一个表,有1亿行的数据,有10列日期型。如果全部使用datetime,那么光这部分的存储空间就是:10*100000000*8字节/≈7629M≈7.4G,当然,如果有这样的需要,再大也还是要用的,假设其实业务上不需要那么精确(因为datetime是精确到0.00333秒),只需要精确到1分钟即可,那么毫不犹豫使用smalldatetime,可以减少一半的空间,也就是大约3.7G。减少空间的好处有很多,比如备份及数据库文件的大小可以减少,让有限的预算做更多的事情。而且数据页固定8KB,越少的体积单页能存放的数据也就越多,查询时要访问的页面就更少,缓解I/O压力。同时对索引的使用也更有效,等等。

语法

DATETIMEFROMPARTS (year,month,day,hour,minute,seconds,milliseconds)

int

语法

int

精确程度取决于运行 SQL Server 实例的计算机硬件和 Windows 版本。标注有:2012有效的是只有2012才出现的功能

TODATETIMEOFFSET (expression,time_zone)

确定性

CURRENT_TIMESTAMP

GO

与getdate()相同

@*format_var*}

描述

YYYY-MM-DD

smalldatetime

datetime2 值被解释为指定 time_zone 的本地时间。

date

3.2、对于一些当前会话需要临时改变日期设置时,可以使用SET关键字改变:

返回值

nnnnnnn]

精确度

3

CURRENT_TIMESTAMP

SWITCHOFFSET(DATETIMEOFFSET,time_zone)

返回包含计算机的日期和时间的datetimeoffset值,SQL Server 的实例正在该计算机上运行。

8

确定性

3 到 5

返回数据类型

存储大小

smalldatetime

具有确定性

0001-01-01 到 9999-12-31

确定性

返回数据类型

二、日期函数:日期函数是处理日期的基础,牢记日期函数能减少很多编程工作

8 到 10

返回值

返回值

DAY

date参数的数据类型。

设置用于解释 date、smalldatetime、datetime、datetime2 和 datetimeoffset 字符串的月、日和年日期部分的顺序。有效参数为 mdy、 dmy、 ymd、 ydm、 myd 和 dym默认值为 mdy。SETDATEFORMAT 将覆盖SETLANGUAGE的隐式日期格式设置。

int

时区偏移量包含在内。

时区偏移量未包含在内。

确定datetimesmalldatetime输入表达式是否为有效的日期或时间值。

格式

datetime(*precision*)

不具有确定性

返回数据类型

对于SQL Server 2008 来说(因为2000甚至2005已经稍微有被淘汰的迹象,所以在此不作过多说明,加上自己工作使用的是2008R2。所以不保证08以前的能用),日期类型有:

@@LANGUAGE

hh:mm:ss[.

GETUTCDATE

int

四、常用日期处理案例:这是文章的重点,因为上面大部分内容都可以从联机丛书中查到

SWITCHOFFSET (DATETIMEOFFSET, time_zone )

不适用

返回一个整数,该整数表示指定的 date 是该月份的哪一天,DAY 与DATEPART 返回相同的值。 如果 date 只包含时间部分,则返回值为 1,即基准日

通过将一个时间间隔与指定date的指定datepart相加,返回一个新的datetime值。

SELECT @@DATEFIRST;

函数

语法

DATEADD (datepart , number , date )

1 分钟

不适用

DAY

SET LANGUAGE

设置用于输入datetimesmalldatetime数据的日期各部分的顺序。

不具有确定性

@@LANGUAGE 不是日期或时间函数。但是,语言设置会影响日期函数的输出。

sp_helplanguage不是日期或时间存储过程。

返回数据类型

不具有确定性

指定 number 时间间隔与指定 date 的指定 datepart 相加后,返回该 date

DATEPART (datepart,date)

EOMONTH

返回值

不适用

DATEDIFF (datepart,startdate,enddate)

函数

日期和时间作为 UTC 时间返回。

SET LANGUAGE us_english;

返回两个指定日期之间所跨的日期或时间datepart边界的数目。

不具有确定性

返回表示指定date的“日”部分的整数。

YEAR

具有确定性

返回值

datetime

4

100 纳秒

1 天

DATEFROMPARTS

nvarchar

DATEDIFF (datepart, startdate , enddate )

tinyint

SYSDATETIMEOFFSET

不适用

精度较低的系统日期和时间函数

SMALLDATETIMEFROMPARTS

ISDATE

为指定的日期和时间返回datetime值。

给定某个日期,计算相关的值,目前我的工作中遇到比较多的就是这些,至于有些特殊历法所需日期,目前没遇到,所以没总结:复制代码 代码如下: --定义给定的一天 DECLARE @Date DATETIME = GETDATE(); SELECT @Date AS '目前时间' ,DATEADD AS '前一天' ,DATEADD AS '后一天' /*月计算*/ ,DATEADD(MONTH,DATEDIFF AS '月初'--在SQL Server中0 代表1900-01-01,通过月运算,保证日恒久为1号 ,DATEADD(DD,-1,DATEADD(MONTH,1+DATEDIFF AS '月末'--找到下月初再扣减1天,建议使用DATEADD而不要直接“-1” ,DATEADD(SS,-1,DATEADD(MONTH,1+DATEDIFF AS '月末' ,DATEADD(MONTH,DATEDIFF AS '上月第一天' ,DATEADD(DAY,-1,DATEADD(DAY,1-DATEPART AS '上月最后一天' ,DATEADD(MONTH,DATEDIFF AS '下月第一天' ,DATEADD(DAY,-1,DATEADD(MONTH,2,DATEADD(DAY,1-DATEPART AS '下月最后一天' /*周计算*/ ,DATEADD(WEEKDAY,1-DATEPART AS '本周第一天'--注意此处与@@datefirst的值有关 ,DATEADD(WEEK,DATEDIFF AS '所在星期的星期日'--注意此处与@@datefirst的值有关 ,DATEADD(DAY,2-DATEPART AS '所在星期的第二天'--注意此处与@@datefirst的值有关,其他天数类推 ,DATEADD(WEEK,-1,DATEADD(DAY,1-DATEPART) AS '上个星期第一天'--注意此处与@@datefirst的值有关 ,DATEADD(WEEK,1,DATEADD(DAY,1-DATEPART) AS '下个星期第一天'--注意此处与@@datefirst的值有关 ,DATENAME AS '本日是周几' ,DATEPART AS '本日是周几'--返回值 1-星期日,2-星期一,3-星期二......7-星期六 /*年度计算*/ ,DATEADD(YEAR,DATEDIFF AS '年初' ,DATEADD(YEAR,DATEDIFF AS '年末' ,DATEADD(YEAR,DATEDIFF AS '去年年初' ,DATEADD(YEAR,DATEDIFF AS '去年年末' ,DATEADD(YEAR,1+DATEDIFF AS '明年年初' ,DATEADD(YEAR,1+DATEDIFF AS '明年年末' /*季度计算*/ ,DATEADD(QUARTER,DATEDIFF AS '本季季初' ,DATEADD(QUARTER,1+DATEDIFF AS '本季季末' ,DATEADD(QUARTER,DATEDIFF AS '上季季初' ,DATEADD(QUARTER,DATEDIFF AS '上季季末' ,DATEADD(QUARTER,1+DATEDIFF AS '下季季初' ,DATEADD(QUARTER,2+DATEDIFF AS '下季季末' 五、建议: 创建时间维度表:在本人以前工作中,经常需要查询时间范围,此时,可以创建一个表,每一行对应一天,然后其他列就是所需日期,比如季初季末、月初月末、年初年末甚至上年下年等。以供直接调用,并且就算存10年的数据,也就3000多条。有这样需求的可以考虑使用。 六、速查手册:日期往往要转换成字符型再进行处理,所以这里贴出部分转换结果 复制代码 代码如下: Select CONVERT, GETDATE--05 16 2006 10:57AM Select CONVERT, GETDATE--05/16/06 Select CONVERT, GETDATE--06.05.16 Select CONVERT, GETDATE--16/05/06 Select CONVERT, GETDATE--16.05.06 Select CONVERT, GETDATE--16-05-06 Select CONVERT, GETDATE--16 05 06 Select CONVERT, GETDATE--05 16, 06 Select CONVERT, GETDATE--10:57:46 Select CONVERT, GETDATE--05 16 200610:57:46:827AM Select CONVERT, GETDATE--05-16-06 Select CONVERT, GETDATE--06/05/16 Select CONVERT, GETDATE--060516 Select CONVERT, GETDATE--16 05 2006 10:57:46:937 Select CONVERT, GETDATE--10:57:46:967 Select CONVERT, GETDATE--2006-05-16 10:57:47 Select CONVERT, GETDATE--2006-05-16 10:57:47.157 Select CONVERT, GETDATE--05/16/06 10:57:47 AM Select CONVERT, GETDATE--2006-05-16 Select CONVERT, GETDATE--10:57:47 Select CONVERT, GETDATE--2006-05-16 10:57:47.250 Select CONVERT, GETDATE--05 16 2006 10:57AM Select CONVERT, GETDATE--05/16/2006 Select CONVERT, GETDATE--2006.05.16 Select CONVERT, GETDATE--16/05/2006 Select CONVERT, GETDATE--16.05.2006 Select CONVERT, GETDATE--16-05-2006 Select CONVERT, GETDATE--16 05 2006 Select CONVERT, GETDATE--05 16, 2006 Select CONVERT, GETDATE--10:57:49 Select CONVERT, GETDATE--05 16 200610:57:49:437AM Select CONVERT, GETDATE--05-16-2006 Select CONVERT, GETDATE--2006/05/16 Select CONVERT, GETDATE--20060516 Select CONVERT, GETDATE--16 05 2006 10:57:49:513 Select CONVERT, GETDATE--10:57:49:547 Select CONVERT, GETDATE--2006-05-16 10:57:49 Select CONVERT, GETDATE--2006-05-16 10:57:49.700 Select CONVERT, GETDATE--2006-05-16T10:57:49.827 Select CONVERT, GETDATE--18 ???? ?????? 142710:57:49:907AM Select CONVERT, GETDATE--18/04/142710:57:49:920AM

返回类型为start_date的类型或datetime2

不具有确定性

语法

函数及其参数

但是,语言设置会影响日期函数的输出。

返回对会话进行 SET DATEFIRST 操作所得结果的当前值。

0001-01-01 00:00:00.0000000 到 9999-12-31 23:59:59.9999999

日期和时间作为 UTC 时间返回。

返回从存储的时区偏移量变为指定的新时区偏移量时得到的 datetimeoffset 值

datetime

DATETIMEOFFSETFROMPARTS

返回有关所有支持语言的日期格式的信息。

DATEPART

不适用

返回数据类型

用来获取日期和时间差的函数

DATEDIFF

函数

datetime2(*precision*)

用来从部件中获取日期和时间值的函数

SET LANGUAGE Italian;

语法

0001-01-01 00:00:00.0000000 到 9999-12-31 23:59:59.9999999

datetime

注意:所有系统日期和时间值均得自运行 SQL Server 实例的计算机的操作系统。

100 纳秒

返回一个整数,它表示指定 date 的年份, YEAR 与DATEPART 返回相同的值。如果 date 仅包含一个时间部分,则返回值为 1900,即基准年

@@LANGUAGE

具有确定性

用来修改日期和时间值的函数

返回表示指定date的“年”部分的整数。

6 到 8

3.3、常用函数操作:

不适用

YEAR

返回包含计算机的日期和时间的datetime2值,SQL Server 的实例正在该计算机上运行。

nnnnnnn]

不适用

精度较高的系统日期和时间函数

1900-01-01 到 2079-06-06

只有与 CONVERT 函数一起使用,同时指定了 CONVERT 样式参数且样式不等于 0、100、9 或 109 时,ISDATE 才是确定的。

返回数据类型

3.1、注意:SQL Server 将 0 解释为 1900 年 1 月 1 日。

GO

DAY

DATETIMEFROMPARTS

用来设置或获取会话格式的函数

三、日期操作详解:

返回表示指定年、月、日的date值。

语法

函数

不适用

SET DATEFIRST

语法

返回值

确定性

TODATETIMEOFFSET 将 datetime2 值转换为 datetimeoffset 值。

范围

0.00333 秒

本文由澳门威斯尼人平台登录发布于澳门威斯尼人平台登录,转载请注明出处:日期相关资料详细介绍_MsSql_脚本之家,日期和时间函数

相关阅读