gpt4 book ai didi

SQL Server DateTimeOffset 匹配相同的 "day"

转载 作者:行者123 更新时间:2023-12-04 12:42:16 26 4
gpt4 key购买 nike

我的应用程序需要收集全局所有地点的“星期二”购买,其中“星期二”是该地点的星期二(不考虑时区)。如果用户下周需要重新运行报告,我仍然需要获取“上周二”的数据。我们所有的数据都使用 DateTimeOffset 存储。

所以
9/4/12 00:00:00 -7 至 9/4/12 23:59:59 -7
必须匹配
9/4/12 00:00:00 +11 至 9/4/12 23:59:59 +11
当我执行我的 WHERE 子句时。

我无法在 WHERE 子句中转换为 UTC,因为这将获取伦敦“星期二”的数据(取决于 DST),而不是该位置的星期二。

我尝试从 DateTimeOffset 转换为 DateTime,但这似乎转换为 UTC。 (在我的测试中,通过 9/1/12 到 9/30/12 获得了 8/31/12 数据。)

用 TSQL 做这样的事情有什么技巧吗?

谢谢!

最佳答案

恕我直言

DateTimeOffset = DateTime+Offset(来自UTC)

所以您的数据已经代表客户的本地日期和时间。只需将其转换为 DateTime,您就会获得客户端的本地日期和时间。

但是,如果您想将偏移量添加到日期时间并希望得到结果日期时间,则

DECLARE @PurchaseDate DATETIMEOFFSET(7) = CAST('2007-05-08 12:30:29.1234567 +5:00' AS  datetimeoffset(7)) 

SELECT CAST(SWITCHOFFSET (@PurchaseDate , '+00:00') AS DATETIME)

看看这个博客了解更多信息。

http://blogs.msdn.com/b/bartd/archive/2009/03/31/the-death-of-datetime.aspx

关于SQL Server DateTimeOffset 匹配相同的 "day",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12272945/

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