sql - 如何使用 SQL 将 Sql Server DateTime 转换为通用时间

标签 sql sql-server database

我有一个数据库,其中包含当前以本地时间存储的日期时间字段。即将进行的项目将需要将所有这些日期转换为通用时间。与其编写一个 c# 应用程序将这些时间转换为世界时间,我宁愿使用可用的 sqlserver/sql 功能将这些日期准​​确地转换为世界时间,所以我只需要一个更新脚本。为了准确起见,转换需要考虑夏令时波动等因素。

最佳答案

用户定义的函数将允许您编写如下所示的 SQL 查询:

SELECT toUTC([MyDateColumn], [MyTimeZoneColumn]) FROM [MyTable]

然后您可以从服务器返回通用时间,而查询本身无需使用很多难看的语法。现在您可以使用类似于 Chris 发布的常规 SQL 为此构建 UDF,但 SQL Server 2005 及更高版本将允许您使用 CLR(.Net:C# 可选)来构建 UDF。它对日期有更好的支持,并且可以更好地考虑时区和夏令时。

关于sql - 如何使用 SQL 将 Sql Server DateTime 转换为通用时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/205797/

相关文章:

sql-server - SQL 服务器 : don't send email if transaction rolls back

数据库与许多表的关系以及 Entity Framework 中的表示

sql - 列的默认值(当值设置为 NULL 时)等于其他列

mysql - 在不填充数据的脚本中加载数据本地INFILE(mysql)

mysql - 从 Access VBA 中的查询创建表

sql - 使用 JOIN 与 WHERE 子句时是否有性能改进?

sql-server - 将 Varchar 转换为固定长度

mysql - 在mysql中查询$

MySQL 5.5 - 如何在插入期间表被锁定时获取行数

sql - SQL Server 2008 中唯一的日期范围字段