SQL Server日期
介绍
日期是在数据库中经常使用的一种数据类型。在 SQL Server 中,日期和时间数据类型用于存储日期和时间值。本文将介绍 SQL Server 中日期的相关知识,包括日期数据类型、日期函数以及日期的格式化等。
日期数据类型
在 SQL Server 中,有几种日期数据类型可供选择,具体如下:
date
:用于表示日期,格式为YYYY-MM-DD
。范围从 0001-01-01 到 9999-12-31。time
:用于表示时间,格式为hh:mm:ss[.nnnnnnn]
,其中 [nnnnnnn] 是可选的毫秒部分。范围从 00:00:00.0000000 到 23:59:59.9999999。datetime
:用于表示日期和时间,格式为YYYY-MM-DD hh:mm:ss[.nnn]
,其中 [nnn] 是可选的毫秒部分。范围从 1753-01-01 00:00:00.000 到 9999-12-31 23:59:59.997。datetime2
:与datetime
类似,只是精度更高。可以指定的最低精度为 100 纳秒。范围与datetime
相同。smalldatetime
:用于表示日期和时间,格式为YYYY-MM-DD hh:mm:ss
,精确到分钟。范围从 1900-01-01 00:00:00 到 2079-06-06 23:59:59。
在实际应用中,根据数据的需求和精度要求,选择合适的日期数据类型进行存储和处理。
日期函数
SQL Server 提供了一系列函数用于处理日期和时间数据。下面是一些常用的日期函数示例:
DATEPART
DATEPART
函数用于提取日期的部分。以下是一个示例:
SELECT DATEPART(YEAR, GETDATE()) AS '年份',
DATEPART(MONTH, GETDATE()) AS '月份',
DATEPART(DAY, GETDATE()) AS '日期',
DATEPART(HOUR, GETDATE()) AS '小时',
DATEPART(MINUTE, GETDATE()) AS '分钟',
DATEPART(SECOND, GETDATE()) AS '秒数';
输出如下:
+------+-------+--------+-------+--------+--------+
| 年份 | 月份 | 日期 | 小时 | 分钟 | 秒数 |
+------+-------+--------+-------+--------+--------+
| 2021 | 10 | 15 | 16 | 59 | 15 |
+------+-------+--------+-------+--------+--------+
DATEADD
DATEADD
函数用于在给定的日期上增加或减去指定的时间间隔。以下是一个示例:
SELECT DATEADD(DAY, 10, GETDATE()) AS '十天后',
DATEADD(MONTH, -3, GETDATE()) AS '三个月前',
DATEADD(YEAR, 1, GETDATE()) AS '一年后';
输出如下:
+---------------------+---------------------+---------------------+
| 十天后 | 三个月前 | 一年后 |
+---------------------+---------------------+---------------------+
| 2021-10-25 16:59:15 | 2021-07-15 16:59:15 | 2022-10-15 16:59:15 |
+---------------------+---------------------+---------------------+
DATEDIFF
DATEDIFF
函数用于计算两个日期之间的时间间隔。以下是一个示例:
DECLARE @StartDate DATETIME = '2020-01-01';
DECLARE @EndDate DATETIME = '2021-12-31';
SELECT DATEDIFF(DAY, @StartDate, @EndDate) AS '天数',
DATEDIFF(MONTH, @StartDate, @EndDate) AS '月数',
DATEDIFF(YEAR, @StartDate, @EndDate) AS '年数';
输出如下:
+------+-------+------+
| 天数 | 月数 | 年数 |
+------+-------+------+
| 729 | 24 | 1 |
+------+-------+------+
GETDATE
GETDATE
函数用于获取当前系统日期和时间。以下是一个示例:
SELECT GETDATE() AS '当前日期时间';
输出如下:
+---------------------+
| 当前日期时间 |
+---------------------+
| 2021-10-15 16:59:15 |
+---------------------+
日期格式化
在 SQL Server 中,可以使用 CONVERT
函数将日期数据类型转换为字符串,并指定日期的输出格式。以下是一些常用的格式转换示例:
格式化为年月日
SELECT CONVERT(VARCHAR(10), GETDATE(), 120) AS '年月日';
输出如下:
+------------+
| 年月日 |
+------------+
| 2021-10-15 |
+------------+
格式化为中文日期
SELECT CONVERT(VARCHAR(20), GETDATE(), 23) AS '中文日期';
输出如下:
+---------------------+
| 中文日期 |
+---------------------+
| 2021-10-15 00:00:00 |
+---------------------+
格式化为自定义格式
SELECT CONVERT(VARCHAR(20), GETDATE(), 111) AS '自定义格式';
输出如下:
+---------------------+
| 自定义格式 |
+---------------------+
| 2021/10/15 00:00:00 |
+---------------------+
总结
本文介绍了 SQL Server 中日期的相关知识,包括日期数据类型、日期函数以及日期的格式化。掌握这些知识可以帮助我们在 SQL Server 中有效地处理和操作日期数据。