2

我在 SQL Server 2008 R2 中有一个 DateTime 字段。我有一些查询该字段的视图,例如

SELECT * 
FROM table1 
WHERE CONVERT(DATE, TransactionDate) = 'April 10 2012'.

服务器时间设置为德克萨斯时间,我想使用 EST 查询这些数据。换句话说

SELECT * 
FROM Table1
WHERE TransactionDate = 'April 10 2012 Eastern Standard Time'

实现这一目标的最佳方法是什么?

4

1 回答 1

0

试一试。

"DATETIMEOFFSET 数据类型

目前在列中保存日期和时间时,不会指示该日期和时间属于哪个时区。当您处理包括具有不同时区的多个不同国家的数据时,这一点尤其重要。新数据类型DATETIMEOFFSET定义了一个日期,该日期与具有时区意识并基于 24 小时制的一天中的时间相结合。以下脚本说明了DATETIMEOFFSET数据类型的用法。

DECLARE @dt DATETIMEOFFSET(0)

SET @dt = '2007-10-29 22:50:55 -1:00'

DECLARE @dt1 DATETIMEOFFSET(0)

SET @dt1 = '2007-10-29 22:50:55 +5:00'

SELECT DATEDIFF(hh,@dt,@Dt1)

http://www.sql-server-performance.com/2007/datetime-2008/

于 2012-04-10T19:58:29.833 回答