使用大小写和日期格式化器对日期进行减法以对其进行格式化

时间:2014-07-24 15:26:32

标签: mysql

我有三个日期列--- dobcolldateencounterdate

我想做这样的事情:

如果colldate不为null而不是'0000-00-00'则从dob中减去年,月,否则将计算dob的年份和月份。

然后遇到的列不是空的而不是'0000-00-00'然后从先前相减的日期中减去它,否则将计算dob的年份和月份。

有任何好方法可以通过查询来完成此任务。

基本上我想把这个条件逻辑从java代码转移到query.so我直接得到结果。

1 个答案:

答案 0 :(得分:0)

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