【问题标题】:substraction with date using case and date formatter to format it使用大小写和日期格式化程序进行日期减法来格式化
【发布时间】:2014-07-24 15:26:31
【问题描述】:

我有三个日期列 --- dobcolldateencounterdate

我想做这样的事情:

如果 coldate 不为 null 且不是 '0000-00-00',则从 dob 中减去年、月,否则计算 dob 的年和月。

然后遇到日期列不为空且不为 '0000-00-00' 然后从之前减去的日期中减去它,否则计算 dob 的年月。

有什么好的方法可以通过查询来做到这一点。

基本上我想把这个条件逻辑从java代码转移到查询中。所以我直接得到结果。

【问题讨论】:

    标签: mysql


    【解决方案1】:

    coalesce() 函数返回不是null 的第一个参数。只要null值参与计算,整个结果就是null。因此,我们只是颠倒逻辑。

    SELECT COALESCE(
        dob - interval year(colldate) year - month(colldate) month - interval year(encounterdate) year - interval month(encounterdate) month,
        dob - interval year(colldate) year - month(colldate) month,
        dob
        )
    FROM your_table
    

    【讨论】:

    • 对不起,我想这样做从 colldate 中减去 dob 或从遇到日期中减去 dob。而不是从 dob 中减去 colldate 或遇到日期。所以我们可以编辑此查询来执行此操作。
    • 这对我很有帮助。不完全,但我在它的帮助下解决了我的问题。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-08
    • 1970-01-01
    • 2020-10-18
    • 2014-05-08
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    相关资源
    最近更新 更多