日期和时间
在 SQL 中,你使用日期和时间数据类型来存储日历信息。这些数据类型包括 time,date,smalldatetime,datetime,datetime2 和 datetimeoffset。每种数据类型都有特定的格式。
数据类型 | 格式 |
---|---|
时间 | HH:MM:SS [.nnnnnnn] |
日期 | YYYY-MM-DD |
SMALLDATETIME |
YYYY-MM-DD hh:mm:ss |
日期时间 | YYYY-MM-DD hh:mm:ss [.nnn] |
DATETIME2 |
YYYY-MM-DD hh:mm:ss [.nnnnnnn] |
DATETIMEOFFSET |
YYYY-MM-DD hh:mm:ss [.nnnnnnn] [+/-] hh:mm |
DATENAME
函数返回日期特定部分的名称或值。
SELECT DATENAME (weekday,'2017-01-14') as Datename
DATENAME |
---|
星期六 |
你可以使用 GETDATE
函数来确定运行当前 SQL 实例的计算机的当前日期和时间。此功能不包括时区差异。
SELECT GETDATE() as Systemdate
Systemdate |
---|
2017-01-14 11:11:47.7230728 |
DATEDIFF
函数返回两个日期之间的差异。
在语法中,datepart 是指定要用于计算差异的日期部分的参数。datepart 可以是年,月,周,日,小时,分钟,秒或毫秒。然后,在 startdate 参数中指定开始日期,在 enddate 参数中指定要查找其差异的结束日期。
SELECT SalesOrderID, DATEDIFF(day, OrderDate, ShipDate)
AS 'Processing time'
FROM Sales.SalesOrderHeader
SalesOrderID |
处理时间 |
---|---|
43659 |
7 |
43660 |
7 |
43661 |
7 |
43662 |
7 |
DATEADD
功能使你可以将间隔添加到特定日期的一部分。
SELECT DATEADD (day, 20, '2017-01-14') AS Added20MoreDays
Added20MoreDays |
---|
2017-02-03 00:00:00.000 |