日期:2014-05-19  浏览次数:20433 次

问一下SQL 2005时间类型问题.
好像和SQL   2000不太一样.


------解决方案--------------------
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 日。


这是SQL2005联机从书中的。。
------解决方案--------------------
这应是由用的板本的语言设定的
------解决方案--------------------
用代码实现AM PM,select Time from table When Time> 12 and Time <24 then PM else AM