SQL Server 日期和时间
数据类型 | 存储大小(字节) | 日期范围 | 准确度 | 推荐格式及示例 |
DateTime | 8 | 1753-01-01到9999-12-31 | 3.33毫秒 | 'YYYYMMDD hh:mm:ss.nnn' |
SmallDateTime | 4 | 1900-01-01到2079-06-06 | 1分钟 | 'YYYYMMDD hh:mm' |
Date | 3 | 0001-01-01到9999-12-31 | 1天 | 'YYYY-MM-DD' |
Time | 3到5 | 00:00:00.0000000到 23:59:59.9999999 | 100纳秒 | 'hh:mm:ss.nnnnnnn' |
DateTime2 | 6到8 | 0001-01-01 00:00:00.0000000到 9999-12-31 23:59:59.999999999 | 100纳秒 | 'YYYY-MM-DD hh:mm:ss.nnnnnnn’ |
DateTimeOffSet | 8到10 | 0001-01-01 00:00:00.0000000到 9999-12-31 23:59:59.999999999 | 100纳秒 | 'YYYY-MM-DD hh:mm:ss.nnnnnnn [+|-] hh:mm’ |
注意:Time,DateTime2,DateTimeOffSet的存储空间大小依赖于所选择的精度(precision).可以通过0到7之间的整数来指定其精度,分别代表不同小数位数的秒数的精度。例如,Time(0)表示秒的精度只有0位小数,即只能精确到秒。SQL Server默认精度设置为7
返回当前日期和时间的函数
函数 | 返回类型 | 描述 |
GetDate | DateTime | 当前日期和时间 |
Current_TimeStamp | DateTime | 与GetDate相同,而且是ANSI SQL(优先使用) |
GetUTCDate | DateTime | 以UTC格式表示当前日期和时间 |
SYSDateTime | DateTime2 | 当前日期和时间 |
SYSUTCDateTime | DateTime2 | 以UTC格式表示当前日期和时间 |
SYSDateTimeOffSet | DateTimeOffSet | 当前日期和时间,包含时区偏移量 |
函数 | 介绍 | 语法 | 备注 |
cast | 转换数据类型 | cast(expression AS data_type [ (length ) ]) | 是ANSI标准SQL,因此优先使用cast |
convert | 转换数据类型
| convert (data_type [(length)] , expression [ , style ] ) | 101,美国,mm/dd/yyyy 103,英国,dd/mm/yyyy |
switchoffset | 根据输入的datetimeoffset类型的值得到相对应time_zone时区的时间 | switchoffset(datetimeoffset_value,time_zone) | 如:select switchoffset(sysdatetimeoffset(),’-05:00’),如果当前为北京时区,-08:00,时间为10点,则结果为-05:00时区的13点 |
todatetimeoffset | 将datetime2类型的输入值转换成时区为time_zong时区的datetimeoffset值 | TODATETIMEOFFSET ( expression , time_zone ) |
如:SELECT TODATETIMEOFFSET (getdate(), '-07:00') 如果当前时间为10:00,则结果为10:00 –07:00 |
dateadd |
以指定的日期的部分为单位, 为输入的日期和时间值增加指定的量 |
dateadd(part,n,dt_val) |
|
datediff |
返回两个日期和时间之间的指定部分的 数值差 |
datediff(part,dt_val1,dt_val2) |
|
datepart |
返回一个表示给定日期和时间值的指定部分的 整数 |
datepart(part,dt_val) |
year,month,day是datepart的简略版本 |
datename |
返回给定日期和时间值的指定部分的 字符串 |
datename(part,dt_val) |
返回的结果依赖于数据库的语言设置 |
isdate |
判断字符串能否转换成日期和时间数据 |
isdate(string) |
如果能,返回1;如果不能,返回0 |
part
part |
缩写 |
year |
yy,yyyy |
quarter |
qq,q |
month |
mm,m |
dayofyear |
dy,y |
day |
dd,d |
week |
wk,ww |
dayofweek |
dw,w |
hour |
hh |
minute |
mi,n |
second |
ss,s |
millisecond |
ms |
microsecond |
mcs |
nanosecond |
ns |