我有工作记录
从JobID,DeliveredTime从_Job中选择JobID=75XXX1
这给了我: DELIVEREDTIME :10月5日2021年2:06AM (中央标准时间(CST)时区),但不观测夏令时(https://help.salesforce.com/s/articleView?id=000323225&type=1)
这项工作的跟踪显示: 05/10/2021 10:06 (我在阿姆斯特丹/布鲁塞尔)
我运行一个sql活动(下面),在这里我尝试将这次转换为我的时间(CET)今天的()。我得到2021年上午5/10 9:00
Select
T1.JobID as JobId,
CONVERT(datetime,(T1.DeliveredTime AT TIME ZONE 'Central Standard Time' AT TIME ZONE 'Central European Standard Time'),0) as SentTime,
T1.EmailName as EmailName,
T1.EmailSubject as Subject,
T1.FromName as FromName,
T1.FromEmail as FromEmailAddress,
T1.TriggererSendDefinitionObjectID as TriggeredSendDefinition,
T1.EmailID as EmailID,
T1.AccountID as AccountID,
T1.DynamicEmailSubject as DynamicEmailSubject,
T1.EventID as EventID
From
_Job T1 WITH (NOLOCK)所以有一个小时的差别。我想这是因为美国11月发生的节约日照的缘故。
问题是,我有作业运行后,白天的节能灯运行有正确的时间,而在白天之前运行过的作业,节能灯有错误的时间。
如何更改我的sql,使它始终给我正确的时间?
发布于 2021-12-30 15:30:56
刚刚找到了我问题的答案。
感谢杰克·霍布斯的"https://www.linkedin.com/pulse/its-timezone-finally-real-convert-function-salesforce-jack-hobbs/“和"https://bornsql.ca/blog/dates-and-times-in-sql-server-at-time-zone/“
问题是源时区。
原始SQL:
Select JobID,
DeliveredTime as del0,
DeliveredTime AT TIME ZONE 'Central Standard Time' AT TIME ZONE 'Central Europe Standard Time' as Deltim2
from _Job where JobID = 7XXX9我第一次使用的是“中央标准时间”,这是salesforce营销云在文章(https://help.salesforce.com/s/articleView?id=000323225&type=1)中提到的。
“销售云服务器使用中央标准时间(CST)时区,但不遵守夏令时(DST)。”
,这是个错误。我应该用“中美洲标准时间”而不是“中央标准时间”
修改后的SQL:
Select JobID,
DeliveredTime as del0,
DeliveredTime AT TIME ZONE 'Central America Standard Time' AT TIME ZONE 'Central Europe Standard Time' as Deltim2
from _Job where JobID = 7XXX9因此,当我修改我的sql时,日期对于白天节能型更改之前和之后的作业都是正确的。
多谢各位,你们早上找不到这个东西,就像我做的那样。
https://stackoverflow.com/questions/70531394
复制相似问题