Mysql 使用大小写和日期格式化程序对其进行日期减法格式化

Mysql 使用大小写和日期格式化程序对其进行日期减法格式化,mysql,Mysql,我有三个日期列--dob,colldate,遇到日期 我想这样做: 如果colldate不为空且不是“0000-00-00”,则从dob中减去年、月,否则计算dob的年、月 然后相遇日期列不为空且不为“0000-00-00”,然后从先前减去的日期中减去该列,否则将计算dob的年和月 有没有什么好方法可以通过查询实现这一点 基本上,我想把这个条件逻辑从java代码传输到query。所以我直接得到结果。函数coalesce()返回它的第一个参数,它不是null。只要计算中包含null值,整个结果就是

我有三个日期列--
dob
colldate
遇到日期

我想这样做:

如果colldate不为空且不是“0000-00-00”,则从dob中减去年、月,否则计算dob的年、月

然后相遇日期列不为空且不为“0000-00-00”,然后从先前减去的日期中减去该列,否则将计算dob的年和月

有没有什么好方法可以通过查询实现这一点

基本上,我想把这个条件逻辑从java代码传输到query。所以我直接得到结果。

函数
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或encounterdate中减去dob。而不是从dob中减去colldate或encounterdate。因此,我们可以编辑此查询来执行此操作。这对我很有帮助。不完全,但我通过它解决了我的问题。谢谢