MS SQL Server 2008-将UTC时间戳转换为EST
我正在使用MS SQL Server 2008,并使用以下语句显示时间戳MS SQL Server 2008-将UTC时间戳转换为EST,sql,sql-server-2008,Sql,Sql Server 2008,我正在使用MS SQL Server 2008,并使用以下语句显示时间戳 select CAST (DATEADD(SECOND, dbo.V_ALERTS.TIME_STAMP /1000 + 8*60*60, '19700101') AS VARCHAR(50)) as "Time_in_UTC",* from dbo.V_ALERTS where FILEPATH like '%usb%' ORDER BY dbo.V_ALERTS.TIME_STAMP DESC 数据库中的时间戳是
select CAST (DATEADD(SECOND, dbo.V_ALERTS.TIME_STAMP /1000 + 8*60*60, '19700101') AS VARCHAR(50)) as "Time_in_UTC",*
from dbo.V_ALERTS where FILEPATH like '%usb%'
ORDER BY dbo.V_ALERTS.TIME_STAMP DESC
数据库中的时间戳是UTC,如何转换为东部标准时间(EST)?两件事。第一,你可能指的是美国/纽约,而不是东部标准时间(东部标准时间只是一年的一半,另一半是东部标准时间)。第二,这是它的一个副本,这取决于是否在日期上观察到DST,因此在t-SQL中没有一种非常简单的方法来做到这一点。请参阅本系列了解一些想法:否则,在表示层处理转换。这就是为什么我们现在有
DATETIMEOFFSET
数据类型,它正确地表示精确的时间时刻,而不是依赖于偏移的相对时间值。我建议大家尽可能多地使用它,而不是DATETIME,因为它通常是您实际的意思。@dodexahedron About DATETIMEOFFSET不支持DST。它隐含的原因是,它包含了记录的时间偏移量。系统隐式地为您处理转换,即如果您要求UTC时间,它将为您调整4小时。