我可以使用时区在SQL Server视图中查询DateTime吗?

时间:2012-04-10 19:56:35

标签: sql sql-server-2008-r2

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

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

servertime设置为德州时间,我想使用EST查询此数据。换句话说

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

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

1 个答案:

答案 0 :(得分: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/