我将时间戳存储在数据库中,以UTC表示,例如'2015-03-27 08:32:46.024 +00:00'
我正在使用当前服务器时区将时间戳转换为本地时间。
select
SWITCHOFFSET (CAST(CAST('2015-03-27 08:32:00.000 +00:00' AS datetime2(3)) as DateTimeOffset(3)), DATEPART(TZ, SYSDATETIMEOFFSET ()) )
只要我在冬季查看冬季时间戳,这样就可以正常工作。
上周五时间冬季时间戳以夏令时间表示:'2015-03-27 10:32:00.000 +02:00'。
我想看2015-03-27 09:32:00.000 +01:00。
任何有解决方案但没有在数据库中存储冬季和夏季的人?
答案 0 :(得分:0)
正如我在问题的评论中提到的,这通常最好在应用程序代码中完成,而不是在数据库中完成。但是,在某些情况下,在数据库中使用它可能非常有用或必要。例如,您可能需要按分组特定时区中的日期,或者您可能需要批量转换多个项目,或为报告系统生成数据。
对于这些,您可以使用我的SQL Server Time Zone Support项目。
按照安装说明操作,您可以执行以下操作:
SELECT Tzdb.UtcToLocal('2015-03-27 08:32:46.024', 'Europe/Paris')
我在你的时区猜测。您可以选择任何from the list here。