当前位置:
文档之家› sqlserver中的时间和日期数据类型
sqlserver中的时间和日期数据类型
通过将一个时间间隔与指定date的指定datepart相加,返回一个新的datetime值.
date参数的数据类型.
具有确定性
SWITCHOFFSET
SWITCHOFFSET(DATETIMEOFFSET,time_zone)
SWITCHOFFSET更改DATETIMEOFFSET值的时区偏移量并保留UTC值.
分布式查询的数据类型映射
提供有关以下方面的信息:日期和时间数据类型对具有不同版本的SQL Server或不同访问接口的服务器之间的分布式查询有何影响.
用来获取系统日期和时间值的函数
所有系统日期和时间值均得自运行SQL Server实例的计算机的操作系统.
精度较高的系统日期和时间函数
SQL Server 2008使用GetSystemTimeAsFileTime()Windows API来获取日期和时间值.精确程度取决于运行SQL Server实例的计算机硬件和Windows版本.此API的精度固定为100纳秒.可通过使用GetSystemTimeAdjustment()Windows API来确定该精确度.
0001-01-01 00:00:00.0000000到9999-12-31 23:59:59.9999999(以UTC时间表示)
100纳秒
8到10
有
有
注意:Transact-SQLrowversion数据类型不是日期或时间数据类型.timestamp是rowversion的同义词,但不推荐使用.
日期和时间函数
返回有关所有支持语言日期格式的信息.sp_helplanguage不是日期或时间存储过程.但是,语言设置会影响日期函数的输出.
不适用
不适用
用来验证日期和时间值的函数
函数
语法
返回值
返回数据类型
确定性
ISDATE
ISDATE (expression)
确定d为有效的日期或时间值.
0.00333秒
8
无
无
datetime2
YYYY-MM-DDhh:mm:ss[.nnnnnnn]
0001-01-01 00:00:00.0000000到9999-12-31 23:59:59.9999999
100纳秒
6到8
有
无
datetimeoffset
YYYY-MM-DDhh:mm:ss[.nnnnnnn] [+|-]hh:mm
不具有确定性
GETDATE
GETDATE ( )
返回包含计算机的日期和时间的datetime2(7)值,SQL Server的实例正在该计算机上运行.时区偏移量未包含在内.
datetime
不具有确定性
GETUTCDATE
GETUTCDATE ( )
返回包含计算机的日期和时间的datetime2(7)值,SQL Server的实例正在该计算机上运行.日期和时间作为UTC时间(通用协调时间)返回.
100纳秒
3到5
有
无
date
YYYY-MM-DD
0001-01-01到9999-12-31
1天
3
无
无
smalldatetime
YYYY-MM-DDhh:mm:ss
1900-01-01到2079-06-06
1分钟
4
无
无
datetime
YYYY-MM-DDhh:mm:ss[.nnn]
1753-01-01到9999-12-31
int
不具有确定性
DAY
DAY (date)
返回表示指定date的"日"部分的整数.
int
具有确定性
MONTH
MONTH (date)
返回表示指定date的"月"部分的整数.
int
具有确定性
YEAR
YEAR (date)
返回表示指定date的"年"部分的整数.
int
具有确定性
用来获取日期和时间差的函数
int
只有与CONVERT函数一起使用,同时指定了CONVERT样式参数且样式不等于0,100,9或109时,ISDATE才是确定的.
日期和时间相关主题
主题
说明
使用日期和时间数据
提供通用于日期和时间数据类型及函数的信息和示例.
CAST和CONVERT (Transact-SQL)
提供有关在日期和时间值与字符串文字及其他日期和时间格式之间进行相互转换的信息.
函数
语法
返回值
返回数据类型
确定性
SYSDATETIME
SYSDATETIME ()
返回包含计算机的日期和时间的datetime2(7)值,SQL Server的实例正在该计算机上运行.时区偏移量未包含在内.
datetime2(7)
不具有确定性
SYSDATETIMEOFFSET
SYSDATETIMEOFFSET ( )
不适用
不适用
SET LANGUAGE
SET LANGUAGE { [ N ]'language'|@language_var}
设置会话和系统消息的语言环境.SET LANGUAGE不是日期或时间函数.但是,语言设置会影响日期函数的输出.
不适用
不适用
sp_helplanguage
sp_helplanguage[ [@language =]'language']
将一周的第一天设置为从1到7的一个数字.
不适用
不适用
SET DATEFORMAT
SET DATEFORMAT {format|@format_var}
设置用于输入datetime或smalldatetime数据的日期各部分(月/日/年)的顺序.
不适用
不适用
@@LANGUAGE
@@LANGUAGE
返回当前使用的语言的名称.@@LANGUAGE不是日期或时间函数.但是,语言设置会影响日期函数的输出.
返回包含计算机的日期和时间的datetimeoffset(7)值,SQL Server的实例正在该计算机上运行.时区偏移量包含在内.
datetimeoffset(7)
不具有确定性
SYSUTCDATETIME
SYSUTCDATETIME ( )
返回包含计算机的日期和时间的datetime2(7)值,SQL Server的实例正在该计算机上运行.日期和时间作为UTC时间(通用协调时间)返回.
datetime2(7)
不具有确定性
精度较低的系统日期和时间函数
函数
语法
返回值
返回数据类型
确定性
CURRENT_TIMESTAMP
CURRENT_TIMESTAMP
返回包含计算机的日期和时间的datetime2(7)值,SQL Server的实例正在该计算机上运行.时区偏移量未包含在内.
datetime
函数
语法
返回值
返回数据类型
确定性
DATEDIFF
DATEDIFF (datepart,startdate,enddate)
返回两个指定日期之间所跨的日期或时间datepart边界的数目.
int
具有确定性
用来修改日期和时间值的函数
函数
语法
返回值
返回数据类型
确定性
DATEADD
DATEADD (datepart,number,date)
SqlServer中日期和时间数据类型及函数
日期和时间数据类型
下表列出了Transact-SQL的日期和时间数据类型.
数据类型
格式
范围
精确度
存储大小(以字节为单位)
用户定义的秒的小数精度
时区偏移量
time
hh:mm:ss[.nnnnnnn]
00:00:00.0000000到23:59:59.9999999
具有DATETIMEOFFSET的小数精度的datetimeoffset
具有确定性
TODATETIMEOFFSET
TODATETIMEOFFSET (expression,time_zone)
TODATETIMEOFFSET将datetime2值转换为datetimeoffset值.datetime2值被解释为指定time_zone的本地时间.
具有datetime参数的小数精度的datetimeoffset
具有确定性
用来设置或获取会话格式的函数
函数
语法
返回值
返回数据类型
确定性
@@DATEFIRST
@@DATEFIRST
返回对会话进行SET DATEFIRST操作所得结果的当前值.
tinyint
不具有确定性
SET DATEFIRST
SET DATEFIRST {number|@number_var}
编写国际化Transact-SQL语句
提供使用Transact-SQL语句的数据库和数据库应用程序在不同语言之间的可移植性准则,或支持多种语言的数据库和数据库应用程序的可移植性准则.
ODBC标量函数(Transact-SQL)
提供有关可在Transact-SQL语句中使用的ODBC标量函数的信息.这包括ODBC日期和时间函数.
datetime
不具有确定性
用来获取日期和时间部分的函数
函数
语法
返回值
返回数据类型
确定性
DATENAME
DATENAME (datepart,date)
返回表示指定日期的指定datepart的字符串.
nvarchar
不具有确定性
DATEPART