sql-server - SQL Server - 将日期字段转换为 UTC

标签 sql-server datetime utc

我最近更新了我的系统,将日期/时间记录为 UTC,就像以前存储为本地时间一样。

我现在需要将所有本地存储的日期/时间转换为 UTC。我想知道是否有任何内置函数,类似于.NET的ConvertTime方法?

我试图避免编写实用程序应用程序来为我执行此操作。

有什么建议吗?

最佳答案

我不相信上面的代码会起作用。原因是它取决于本地当前日期和 UTC 时间之间的差异。例如,在加利福尼亚州,我们现在处于 PDT(太平洋夏令时);该时间与 UTC 时间相差 7 小时。如果现在运行,提供的代码将为每个需要转换的日期添加 7 小时。但是,如果转换历史存储日期或将来的日期,并且该日期不在夏令时期间,则当正确的偏移量为 8 时,它仍会添加 7。底线:您无法正确转换日期/时间时区之间(包括 UTC,不遵守夏令时),仅查看当前日期。您必须考虑要转换的日期本身,以确定该日期是否有效夏令时。此外,夏令时和标准时间本身改变的日期也发生了变化(乔治布什在美国执政期间改变了日期!)。换句话说,任何引用 getdate() 或 getutcdate() 的解决方案都不起作用。它必须解析要转换的实际日期。

关于sql-server - SQL Server - 将日期字段转换为 UTC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2700197/

相关文章:

c# - 在 Entity Framework Core 中创建非聚集索引

c# - 在 ASP.NET 中使用 C# 将字符串转换为日期让我有一个小时的约会。为什么?

ruby-on-rails - 如何在 MongoMapper 和 Ruby/Rails 中将日期转换为 UTC?

html - 将毫秒转换为 HH :mm:ss format in Angular

c++ - 有没有办法在 c++ 的 uint64_t 中获取日期的 utc 纳秒

sql-server - 连接的数据库服务器不支持从 'uniqueidentifier' 到 'int' 的转换

C# 无法分离数据库

asp.net - Azure 应用服务无法访问 Azure SQL DB,但本地计算机可以工作。允许所有 IP 规则已到位。

python - 使用 strptime 将字符串转换为带有时区偏移的 python 日期类型对象