使用 SQL Server (Transact-SQL) 日期数据类型时,在数据库上执行不同操作时了解日期格式至关重要。请注意,在数据库中创建新表时必须选择列的数据类型。
SQL Server (Transact-SQL) 中可用于存储日期或日期/时间值的不同数据类型下面提到:
数据类型 | 说明 |
---|---|
DATETIME | 日期和时间组合。 格式:"YYYY-MM-DD hh:mm:ss[.mmm]"。 它支持的范围从 1753 年 1 月 1 日到 9999 年 12 月 31 日,精度为 3.33 毫秒。 |
DATETIME2 | 日期和时间组合。 格式:"YYYY-MM-DD hh:mm:ss[.mmm]"。 它支持的范围从 0001 年 1 月 1 日到 9999 年 12 月 31 日,精度为 100 纳秒。 |
DATE | 日期。 格式:"年-月-日"。 支持范围从 0001 年 1 月 1 日到 9999 年 12 月 31 日。 |
TIME | 时间。 格式:"YYYY-MM-DD hh:mm:ss[.nnnnnnn]"。 用于存储时间,精度仅为 100 纳秒。 值范围从"00:00:00.0000000"到"23:59:59.9999999"。 |
DATETIMEOFFSET | 日期和时间组合并添加时区 基于 UTC(通用时间坐标或格林威治标准时间)的意识。 格式:"YYYY-MM-DD hh:mm:ss[.nnnnnnn]"[{+|-}hh:mm]。 它支持的范围从 0001 年 1 月 1 日到 9999 年 12 月 31 日,精度为 100 纳秒。 |
SMALLDATETIME | 日期和时间组合。 格式:"YYYY-MM-DD hh:mm:ss"。 支持范围从1900年1月1日到2079年6月6日,精度为1分钟。 |
示例:创建一个日期数据类型的表
下面提到的语句创建一个名为Employee的表,其中包含五个列:EmpID、姓名、城市、年龄和加入日期。
CREATE TABLE Employee (
EmpID INT NOT NULL,
Name VARCHAR(255) NOT NULL,
City VARCHAR(100),
Age INT,
Date_of_Joining DATE
);
这将创建一个名为 Employee 的空表,其中包含五列。
示例:使用日期数据类型
考虑名为 Employee 的数据库表,包含以下记录:
EmpID | Name | City | Age | Date_of_Joining |
---|---|---|---|---|
1 | John | London | 25 | 2019-05-25 |
2 | Marry | New York | 24 | 2018-10-15 |
3 | Jo | Paris | 27 | 2017-06-09 |
4 | Kim | Amsterdam | 30 | 2014-04-21 |
5 | Ramesh | New Delhi | 28 | 2019-05-25 |
6 | Huang | Beijing | 28 | 2020-01-10 |
获取 Employee 表中加入该组织的所有员工的数据在"2019-05-25",查询为:
SELECT * FROM Employee
WHERE Date_of_Joining = '2019-05-25';
这将产生如下所示的结果:
EmpID | Name | City | Age | Date_of_Joining |
---|---|---|---|---|
1 | John | London | 25 | 2019-05-25 |
5 | Ramesh | New Delhi | 28 | 2019-05-25 |
完整的 SQL Server 日期和时间参考
有关所有 SQL Server 日期和时间函数的完整参考,请参阅 SQL Server 数据和时间参考.