And*_*mar 2 sql sql-server time
我们使用的是一个以C/Unix格式存储日期的旧应用程序.C时间基本上是自1970年1月1日以来的秒数.日期在SQL Server数据库中存储为整数.我正在为使用这些日期的报告撰写视图.
到目前为止,我正在从UNIX时间转换为本机日期时间:
DateAdd(s,3600+unix_time,'1/1/1970')
Run Code Online (Sandbox Code Playgroud)
3600将从UTC转换为我们当地的GMT + 1时区.这在冬天是准确的,但在夏天,由于夏令时,它是一小时.
在SQL Server中是否有内置的从UTC转换为本地时间的方法?
实际上,上面的答案忽略了夏令时.如果目前不是夏令时,则夏令时内的日期将为一小时,反之亦然.此外,许多不同国家的立法者都喜欢让夏令时变得更加复杂.
从本质上讲,尽可能在SQL Server中尽量避免这种情况.客户端日期处理库通常可以正确使用它.如果需要使用数据库中已有的时间戳,请考虑将它们转换为datetime列或将日期值转换为客户端代码中的时间戳,然后再将它们用作查询参数.
这只是那些一直以错误方式发明的车轮之一.
| 归档时间: |
|
| 查看次数: |
8720 次 |
| 最近记录: |