gpt4 book ai didi

MySQL 如果差异小于 0,则选择 0,否则选择差异

转载 作者:行者123 更新时间:2023-11-29 05:12:50 37 4
gpt4 key购买 nike

我想获得 StartDate 和 EndDate 之间的差值,但如果差值小于 0,我需要值 0(EndDate 可能在 StartDate 之前)。有没有办法在不重复 ROUND() 表达式的情况下在 SELECT 中执行此操作?

SELECT StartDate, EndDate, 
IF(ROUND(TIMESTAMPDIFF(SECOND, StartDate, EndDate)/86400, 1) < 0, 0, ROUND(TIMESTAMPDIFF(SECOND, StartDate, EndDate)/86400, 1)) AS Duration
FROM table
WHERE StartDate <= '2016-06-02' AND EndDate >= '2016-06-01';

最佳答案

只需使用 GREATEST()得到 0 和差值中的较大者。

SELECT StartDate, EndDate, 
GREATEST(ROUND(TIMESTAMPDIFF(SECOND, StartDate, EndDate)/86400, 1), 0) AS Duration
FROM table
WHERE StartDate <= '2016-06-02' AND EndDate >= '2016-06-01';

关于MySQL 如果差异小于 0,则选择 0,否则选择差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37056778/

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