使用日期和时间数据
Microsoft® SQL Server™ 2000 使用 datetime 和 smalldatetime 数据类型存储日期和时间数据。
没有只存储时间或日期的独立的时间和日期数据类型。当设置 datetime 或 smalldatetime 值时,如果只指定时间,则日期默认为 1900 年 1 月 1 日。如果只指定日期,则时间默认为 12:00 AM(午夜)。
对于 datetime 数据,可以执行如下操作:
- 键入新的数据或更改现有的数据。
- 进行日期和时间的计算,比如日期的加或减。有关日期算法的更多信息,请参见 +(加)和 -(减)。
- 搜索特定的日期和/或时间。
可以使用系统日期函数进行一些关于 datetime 数据的算术运算。有关更多信息,请参见函数。
下面是一些使用日期和时间数据的准则:
- 若要对日期和时间进行精确搜索匹配,请使用等号(=)。Microsoft SQL Server 以 12:00:00:000 AM(默认值)的精确时间形式返回年、月、日都完全匹配的日期和时间值。
- 若要搜寻日期或时间的一部分,请使用 LIKE 运算符。SQL Server 首先把数据转换为 datetime 格式然后再转换为 varchar 格式。由于标准时间显示格式不包括秒和毫秒,不能使用 LIKE 和匹配模式对其搜索,除非使用 CONVERT 函数并把 style 参数设为 9 或 109。有关部分日期和时间搜索的更多信息,请参见 LIKE。
- SQL Server 在运行时计算 datetime 常量。用于某种语言期望的日期格式的日期字符串,如果由使用不同语言和日期格式设置的连接来执行查询,则可能无法识别。例如,下面的视图对于语言设置为美国英语的连接可以工作正常,但对于其它语言设置的连接就不能工作正常:
CREATE VIEW USA_Dates AS
SELECT *
FROM Northwind.dbo.Orders
WHERE OrderDate < 'May 1, 1997'
当在查询中使用 datetime 常量,而且该查询由使用不同语言设置的连接执行时,需确保日期对于所有语言设置均是可以接受的。对于国际数据库中永久对象中的 datetime 常量,比如表约束和查看 WHERE 子句,必须同样小心。有关所有语言设置都解释为相同的日期格式的更多信息,请参见编写国际 Transact-SQL 语句。
SQL Server 可以识别以下列格式括在单引号 (') 中的日期和时间:
- 字母日期格式(例如,'April 15, 1998')
- 数字日期格式(例如,'4/15/1998'、'April 15,1998')
- 未分隔的字符串格式(例如'19981207'、'December 12, 1998')