【发布时间】:2016-07-20 06:28:39
【问题描述】:
查询:
UPDATE dbo.FinalExtract
SET WEWE = CASE
WHEN Wait_time <= '24'
THEN CONVERT(varchar, dateadd(hour, -24, Wait_time))
ELSE CONVERT(varchar, dateadd(hour, +24, Wait_time))
END
这是我想要的,但我收到了转换错误
让我告诉你wait_time是
wait_time = CONVERT(VARCHAR, DATEDIFF(Hour, time_created, time_responded) % 24) + '.'
+ CONVERT(VARCHAR, DATEDIFF(minute, time_created, time_responded) % 60)
输出是:19.07
如果输出值小于 24 小时,我想添加 +24 小时,如果输出值超过 24 小时,则添加额外的 24 小时。
我试过了
UPDATE dbo.FinalExtract
SET WEWE = CASE
WHEN Wait_time <= '24'
THEN CONVERT(varchar, dateadd(hour, -24, Wait_time))
ELSE CONVERT(varchar, dateadd(hour, +24, Wait_time))
END
但它不起作用我收到转换错误。
【问题讨论】:
-
请发布您的表格架构、示例数据和预期结果
-
是的,我已经上传了屏幕截图...我想更新列 WEWE 值
-
请朋友们,如果我执行此查询,我会遇到错误.....Msg 241,Level 16,State 1,Line 2 从字符串转换日期和/或时间时转换失败。
-
为什么要添加 +/- 24 ?,它是涵盖全天的日期范围吗?分享错误的屏幕截图或发送错误文本。
-
是的,兄弟,这背后的逻辑是......当在 time_created 中,time_responded 时间段落在周末,然后在 wait_time 上增加 24 小时,如果它在工作日,则减去 24 小时
标签: sql sql-server datetime