gpt4 book ai didi

sql - 将历史日期从 UTC 转换为本地时间

转载 作者:行者123 更新时间:2023-12-04 19:21:44 24 4
gpt4 key购买 nike

我有一个包含如下数据的 sql 表:

| theDate (datetime)  | theValue (int) |
----------------------------------------
| 2010-05-17 02:21:10 | 5 |
| 2009-03-12 04:11:35 | 23 |
| 2010-02-19 18:16:53 | 52 |
| 2008-07-07 22:54:11 | 30 |

日期以 UTC 格式存储在日期时间列中,如何将它们转换为本地时间(挪威)?请记住,由于冬季/夏季时间,UTC 偏移量并非全年都相同。

更新 :我使用的是 Microsoft SQL Server 2005,我需要从 SQL 执行此操作,因为稍后将在报告中显示数据。

最佳答案

此语句将适用于您列出的表。使用该逻辑,您可以将其应用于任何日期字段。

    SELECT CASE
WHEN [theDate] BETWEEN
Convert(DATETIME, Convert(VARCHAR(4), Year([theDate])) + '-03-' + Convert(VARCHAR(2), (31 - (5 * Year([theDate])/4 + 4) % 7)) + ' 02:00:00', 20)
AND
Convert(DATETIME, Convert(VARCHAR(4), Year([theDate])) + '-10-' + Convert(VARCHAR(2), (31 - (5 * Year([theDate])/4 + 1) % 7)) + ' 03:00:00', 20)
THEN Dateadd(hh, 2, [theDate])
ELSE Dateadd(hh, 1, [theDate])
END AS [theDate],
[theValue]
FROM [YOURTABLE]

关于sql - 将历史日期从 UTC 转换为本地时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2872788/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com