【发布时间】:2021-02-19 12:35:47
【问题描述】:
我正在尝试创建一个列,当持续时间为自初始日期之日起的一天(24 小时或更长时间)时,该列会引发标志。
select
case when (enddte - begindte) > '23:59:59.000'
then '1'
else '0'
end as flag
from shipment
where ship_id = '14723'
注意事项: enddte 和 begindte 的日期格式如下,例如:2017-09-06 20:22:36.000
我需要进一步分解上面计算天 - 天和小时 - 小时的案例陈述吗?
【问题讨论】:
-
请用您正在运行的数据库标记您的问题:mysql、oracle、postgresql...?另外,
begindte和enddte列的数据类型是什么? -
@GMB:看起来 OP 正在使用 MSSQL。我相应地更新了标签。另外:我不确定 OP 是如何调用此查询的,但我不确定“选择案例何时”是最好的方法......
-
@GMB,是的,我正在使用 MSSQL。数据类型是日期时间。我在想查询应该看起来像这样,但还没有让它工作。选择 case when (datediff(hour,enddte, begindte)/24.0) > 1 then '1' else '0' end as flag from shipping where ship_id = '14723'
标签: sql sql-server datetime case date-arithmetic