日期和时间数据类型
| 数据类型 | 格式 | 范围 | 精确度 | 存储大小(字节) | 用户定义的秒的小数部分精度 | 时区偏移量 |
|---|---|---|---|---|---|---|
| time | hh:mm:ss[.nnnnnnn] | 00:00:00.0000000 到 23:59:59.9999999 | 100 纳秒 | 3 到 5 | 是 | 否 |
| date | YYYY-MM-DD | 0001-01-01 到 31.12.99 | 1 天 | 3 | 否 | 否 |
| smalldatetime | YYYY-MM-DD hh:mm:ss | 1900-01-01 到 2079-06-06 | 1 分钟 | 4 | 否 | 否 |
| datetime | YYYY-MM-DD hh:mm:ss[.nnn] | 1753-01-01 到 9999-12-31 | 0.00333 秒 | 8 | 否 | 否 |
| datetime2 | YYYY-MM-DD hh:mm:ss[.nnnnnnn] | 0001-01-01 00:00:00.0000000 到 9999-12-31 23:59:59.9999999 | 100 纳秒 | 6 到 8 | 是 | 否 |
| datetimeoffset | YYYY-MM-DD hh:mm:ss[.nnnnnnn] [+|-]hh:mm | 0001-01-01 00:00:00.0000000 到 9999-12-31 23:59:59.9999999(以 UTC 时间表示) | 100 纳秒 | 8 到 10 | 是 | 是 |
日期和时间函数
系统日期和时间函数
-- 系统日期和时间函数
SELECT SYSDATETIME() -- 2023-11-16 15:36:52.0075417
, SYSDATETIMEOFFSET() -- 2023-11-16 15:36:52.0075417+8
, SYSUTCDATETIME() -- 2023-11-16 07:36:52.0075417
, CURRENT_TIMESTAMP -- 2023-11-16 15:36:52.007
, GETDATE() -- 2023-11-16 15:36:52.007
, GETUTCDATE() -- 2023-11-16 07:36:52.007
, CONVERT(DATE, SYSDATETIME()) -- 2023-11-16
, CONVERT(TIME, SYSDATETIME()) -- 17:04:00.3993961
返回日期和时间部分的函数
-- 返回日期和时间部分的函数
SELECT DATENAME(year, SYSDATETIME()) -- 2023 year, yyyy, yy
, YEAR(SYSDATETIME()) -- 2023
, DATENAME(quarter, SYSDATETIME()) -- 4 quarter, qq, q
, DATENAME(month, SYSDATETIME()) -- 11 month, mm, m
, MONTH(SYSDATETIME()) -- 11
, DATENAME(day, SYSDATETIME()) -- 16 day, dd, d
, DAY(SYSDATETIME()) -- 16
, DATENAME(dayofyear, SYSDATETIME()) -- 320 dayofyear, dy, y
, DATENAME(week, SYSDATETIME()) -- 46 week, wk, ww
, DATENAME(weekday, SYSDATETIME()) -- 星期四 weekday, dw
, DATEPART(weekday, SYSDATETIME()) -- 5 weekday, dw
, DATENAME(hour, SYSDATETIME()) -- 17 hour, hh
, DATENAME(minute, SYSDATETIME()) -- 13 minute, n
, DATENAME(second, SYSDATETIME()) -- 48 second, ss, s
;
附:
datepart参数 https://learn.microsoft.com/zh-cn/sql/t-sql/functions/datename-transact-sql?view=sql-server-2016#examples
| datepart | 返回值 |
|---|---|
| year, yyyy, yy | 2007 |
| quarter, qq, q | 4 |
| month, mm, m | 10 月 |
| dayofyear, dy, y | 303 |
| day, dd, d | 30 |
| week, wk, ww | 44 |
| weekday, dw | 星期二 |
| hour, hh | 12 |
| minute, n | 15 |
| second, ss, s | 32 |
| millisecond, ms | 123 |
| microsecond, mcs | 123456 |
| nanosecond, ns | 123456700 |
| TZoffset, tz | +05:10 |
| ISO_WEEK, ISOWK, ISOWW | 44 |
官方文档:
https://learn.microsoft.com/zh-cn/sql/t-sql/functions/date-and-time-data-types-and-functions-transact-sql?view=sql-server-2016