使用日期和时间数据
更新日期: 2006 年 4 月 14 日
SQL Server 2005 中的日期和时间数据类型类别包含下列数据类型:
- datetime
- smalldatetime
使用 datetime 和 smalldatetime 数据类型,可以执行下列操作:
- 输入新日期和时间,或者更改现有日期和时间。
- 添加和减去数据。有关日期运算的详细信息,请参阅 + (Add) (Transact-SQL) 和 -(减)(Transact-SQL)。
- 搜索特定日期或时间。
可以使用系统日期和时间函数对 datetime 和 smalldatetime 数据类型执行一些算术运算。有关详细信息,请参阅Functions (Transact-SQL)。
下面是使用日期和时间数据的一些规则:
若要搜索完全匹配的日期和时间,请使用等号 (=)。SQL Server 将返回月、日、年完全匹配的日期和时间值,精确时间表示为 12:00:00:000 A.M.(默认)。有关时间的详细信息,请参阅时间格式。
SQL Server 在运行时计算 datetime 常量。如果由使用不同语言和日期格式设置的连接执行查询,则使用一种语言所需的数据格式的数据字符串可能不可识别。例如,对于使用美国英语语言设置建立的连接,此视图可以正常工作,而对于使用其他语言设置建立的连接,此视图无法正常工作:
CREATE VIEW dbo.USA_Dates AS SELECT PurchaseOrderID, TotalDue FROM AdventureWorks.Purchasing.PurchaseOrderHeader WHERE OrderDate < 'May 1, 2002';
在使用不同语言设置建立的连接所执行的查询中使用 datetime 常量时,需确保日期对于所有语言设置均是可接受的。对于国际数据库中永久对象中的 datetime 常量,例如表约束和查看 WHERE 子句,必须同样小心。下面的示例介绍确保对于所有语言或数据格式连接设置,都对 datetime 常量进行相同解释的一种方法。
CREATE VIEW dbo.International_Dates AS SELECT PurchaseOrderID, TotalDue FROM AdventureWorks.Purchasing.PurchaseOrderHeader WHERE OrderDate < CONVERT(DATETIME,'20020501',101);
有关详细信息,请参阅编写国际化 Transact-SQL 语句。
SQL Server 可识别下列格式中用单引号 (') 括起来的日期和时间。
- 字母日期,例如 'April 15, 1998'
- 数值日期格式,例如 '4/15/1998'
- 未分隔的字符串格式,例如 '19981207' 指 1998 年 12 月 7 日。
请参阅
其他资源
日期和时间 (Transact-SQL)
数据类型 (Transact-SQL)
CAST 和 CONVERT (Transact-SQL)