一、日期和时间数据类型
在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中的日期和时间数据类型、格式、函数、运算非常丰富实用,能够满足各种不同的业务需求。