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。因此,我们可以编辑此查询来执行此操作。这对我很有帮助。不完全,但我通过它解决了我的问题。谢谢