Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MS SQL Server 2008-将UTC时间戳转换为EST_Sql_Sql Server 2008 - Fatal编程技术网

MS SQL Server 2008-将UTC时间戳转换为EST

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 数据库中的时间戳是

我正在使用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

数据库中的时间戳是UTC,如何转换为东部标准时间(EST)?

两件事。第一,你可能指的是美国/纽约,而不是东部标准时间(东部标准时间只是一年的一半,另一半是东部标准时间)。第二,这是它的一个副本,这取决于是否在日期上观察到DST,因此在t-SQL中没有一种非常简单的方法来做到这一点。请参阅本系列了解一些想法:否则,在表示层处理转换。这就是为什么我们现在有
DATETIMEOFFSET
数据类型,它正确地表示精确的时间时刻,而不是依赖于偏移的相对时间值。我建议大家尽可能多地使用它,而不是DATETIME,因为它通常是您实际的意思。@dodexahedron About DATETIMEOFFSET不支持DST。它隐含的原因是,它包含了记录的时间偏移量。系统隐式地为您处理转换,即如果您要求UTC时间,它将为您调整4小时。