您的位置:

SQL Server时间格式详解

一、日期和时间数据类型

在SQL Server中,日期和时间数据类型是一个非常重要的概念。常见的日期和时间数据类型有date、time、datetime、smalldatetime、datetime2、datetimeoffset等。

其中,date数据类型表示日期,不包含时间部分;time数据类型表示一天中的具体时间,不包含日期部分;datetime数据类型表示日期和时间,精度为1/300秒;smalldatetime数据类型表示日期和时间,只能表示1900年1月1日至2079年6月6日之间的日期时间,精度为1分钟。

datetime2数据类型表示日期和时间,精确到100纳秒,可表示范围为1753年1月1日至9999年12月31日的日期时间。而datetimeoffset数据类型除了包含日期和时间之外,还包括与格林威治时间的差距。

二、日期和时间格式

在SQL Server中,日期和时间的表示方式有多种格式。常见的日期和时间格式有:

1. yyyy-MM-dd HH:mm:ss

2. yyyyMMdd HH:mm:ss

3. yyyy/MM/dd HH:mm:ss

4. yyyy年MM月dd日 HH时mm分ss秒

其中,第一种格式所代表的含义分别是:年(四位数)、月(两位数)、日(两位数)、小时(24小时制,两位数)、分钟(两位数)、秒(两位数)。

其他格式与此类似,只是分隔符不同。

三、日期和时间函数

在SQL Server中,日期和时间函数能够对日期和时间进行各种操作,非常实用。常见的日期和时间函数有:

1. GETDATE()

GETDATE()函数返回当前系统日期和时间。

SELECT GETDATE()
--2021-12-13 20:16:52.787

2. DATEPART()

DATEPART函数返回日期和时间的各个部分值,例如年、月、日、小时、分钟等。

SELECT DATEPART(year, GETDATE())
--2021
SELECT DATEPART(month, GETDATE())
--12

3. CONVERT()

CONVERT函数用于将一个日期和时间数据类型转换为另一种数据类型,常见的转换格式有:

1. CONVERT(varchar(20), GETDATE(), 120)

2. CONVERT(varchar(20), GETDATE(), 112)

3. CONVERT(varchar(20), GETDATE(), 111)

其中,转换格式表示的含义和日期时间格式类似。

四、日期和时间运算

在SQL Server中,日期和时间运算也是非常常见的操作。常见的运算包括:

1. DATEADD()

DATEADD函数用于在日期和时间上增加或减少一定的时间间隔。

SELECT DATEADD(day, 7, GETDATE())
--2021-12-20 20:16:52.787
SELECT DATEADD(hour, -3, GETDATE())
--2021-12-13 17:16:52.787

2. DATEDIFF()

DATEDIFF函数用于计算两个日期之间的时间间隔。

SELECT DATEDIFF(day, '2021-12-01', '2021-12-31')
--30
SELECT DATEDIFF(hour, '2021-12-13 10:00:00', '2021-12-13 12:00:00')
--2

3. DATEPART()

DATEPART函数在日期和时间运算中也是非常实用的,例如计算一周的第几天。

SELECT DATEPART(weekday, '2021-12-13')
--2

五、总结

SQL Server中的日期和时间数据类型、格式、函数、运算非常丰富实用,能够满足各种不同的业务需求。