SQL Server日期

SQL Server日期

SQL Server日期

介绍

日期是在数据库中经常使用的一种数据类型。在 SQL Server 中,日期和时间数据类型用于存储日期和时间值。本文将介绍 SQL Server 中日期的相关知识,包括日期数据类型、日期函数以及日期的格式化等。

日期数据类型

在 SQL Server 中,有几种日期数据类型可供选择,具体如下:

  1. date:用于表示日期,格式为 YYYY-MM-DD。范围从 0001-01-01 到 9999-12-31。
  2. time:用于表示时间,格式为 hh:mm:ss[.nnnnnnn],其中 [nnnnnnn] 是可选的毫秒部分。范围从 00:00:00.0000000 到 23:59:59.9999999。
  3. datetime:用于表示日期和时间,格式为 YYYY-MM-DD hh:mm:ss[.nnn],其中 [nnn] 是可选的毫秒部分。范围从 1753-01-01 00:00:00.000 到 9999-12-31 23:59:59.997。
  4. datetime2:与 datetime 类似,只是精度更高。可以指定的最低精度为 100 纳秒。范围与 datetime 相同。
  5. 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 中有效地处理和操作日期数据。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程