我在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'
实现这一目标的最佳方法是什么?
答案 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)