1. 日期和时间数据类型
在MSSQL中,日期和时间数据类型的定义非常重要。在项目中,我们通常需要使用以下日期和时间数据类型:DATE、DATETIME、DATETIME2、DATETIMEOFFSET、SMALLDATETIME、TIME等。
其中,DATE表示日期,具有yyyy-mm-dd格式的值;DATETIME表示日期和时间,具有yyyy-mm-dd hh:mm:ss格式,精度为小数秒;DATETIME2表示日期和时间,yyyy-mm-dd hh:mm:ss.nnnnnnn格式,精度最高到100纳秒;DATETIMEOFFSET表示以相对UTC时间为基础的日期和时间;SMALLDATETIME表示日期和时间,yyyy-mm-dd hh:mm:ss格式,精度为分;TIME表示时间,hh:mm:ss.nnnnnnn格式。
2. 使用DATETIME函数
2.1 获取当前日期和时间
要获取当前日期和时间,我们可以使用Now()函数或GetDate()函数,两者等价。
SELECT NOW() AS "Current Datetime";
SELECT GETDATE() AS "Current Datetime";
执行以上语句将得到以下结果:
| Current Datetime |
+------------------------+
| 2019-08-27 11:32:40.587|
2.2 获取日期和时间的部分信息
我们可以使用YEAR()、MONTH()、DAY()、HOUR()、MINUTE()、SECOND()等函数获取日期和时间的部分信息。
SELECT YEAR(NOW()) AS "Current Year";
SELECT MONTH(NOW()) AS "Current Month";
SELECT DAY(NOW()) AS "Current Day";
SELECT HOUR(NOW()) AS "Current Hour";
SELECT MINUTE(NOW()) AS "Current Minute";
SELECT SECOND(NOW()) AS "Current Second";
执行以上语句将得到以下结果:
| Current Year |
+--------------+
| 2019 |
+--------------+
| Current Month |
+---------------+
| 8 |
+---------------+
| Current Day |
+-------------+
| 27 |
+-------------+
| Current Hour |
+--------------+
| 11 |
+--------------+
| Current Minute |
+----------------+
| 32 |
+----------------+
| Current Second |
+----------------+
| 40 |
+----------------+
3. 使用FORMAT函数将日期转化为字符串
在MSSQL中,我们可以使用FORMAT函数将日期和时间格式化为指定格式的字符串。FORMAT函数通常需要两个参数:要转化为字符串的日期或时间和格式字符串。
格式字符串由一个或多个占位符和常见的分隔符组成。可以使用常见的占位符,如yyyy表示四位数的年份,MM表示两位数的月份,dd表示两位数的日期,hh表示两位数的小时(24小时制),mm表示两位数的分钟,ss表示两位数的秒,tt表示AM或PM(仅适用于12小时时钟)。
SELECT FORMAT(NOW(),'yyyy/MM/dd HH:mm:ss') AS "Current Datetime";
SELECT FORMAT(NOW(),'yyyy年M月d日 h:mm tt','en-US') AS "Current Datetime";
执行以上语句将得到以下结果:
| Current Datetime |
+-------------------------+
| 2019/08/27 11:32:40 |
| 2019年8月27日 11:32 AM |
4. 使用DATEDIFF函数计算日期差值
在MSSQL中,我们可以使用DATEDIFF函数计算两个日期之间的差异。DATEDIFF函数需要三个参数:比较的时间单位、第一个日期和第二个日期。时间单位由以下几个单位:年(year)、季度(quarter)、月(month)、日(day)、小时(hour)、分钟(minute)以及秒(second)。
例如,我们想计算从出生日期到现在的天数:
SELECT DATEDIFF(day,'1994-09-10', NOW()) AS "Days alive";
执行以上语句将得到以下结果:
| Days alive |
+------------+
| 9146 |
+------------+
5. 使用DATEADD函数添加时间间隔
在MSSQL中,我们可以使用DATEADD函数将指定时间间隔添加到日期或时间。DATEADD函数需要三个参数:要添加到的时间单位、要添加的数字值以及要添加到的日期或时间。
例如,我们想在现在的日期上增加10天:
SELECT DATEADD(day,10, NOW()) AS "New Date";
执行以上语句将得到以下结果:
| New Date |
+--------------------------------+
| 2019-09-06 11:32:40.5900000 +08|
+--------------------------------+
6. 结论
在MSSQL中,日期和时间是非常重要的数据类型。我们必须了解如何正确地使用它们来存储、格式化和计算日期和时间。此外,MSSQL还提供了许多函数来帮助我们处理日期和时间,如Now()、GetDate()、YEAR()、MONTH()、DAY()、HOUR()、MINUTE()、SECOND()、FORMAT()、DATEDIFF()和DATEADD()。