MySQL中取昨天的日期
时间:2009-03-02 来源:风山渐
由于数据仓库ETL的需要,每天要去取一个MySQL前一天的数据,就写了个小脚本扔在Crontab里面跑。
很简单的一个脚本,一直运行都很正常。2月1号的时候执行时却都没取到数据,当时都没有在意,于是手动取了数据。没想到3月1号执行又出了问题,再次没有数据。今天仔细检查了下脚本,发现是我使用Oracle的一个习惯导致了这个错误。
Oracle中的时间是Date类型,非常好用,以天问单位,可以随意的加减。我把这一习惯带到了MySQL中,我在脚本中取前一天的日期用的是“current_date()-1”,这个表达式在平时执行还好,可是在每月的1号时执行时并非像我想象中的那样得到上个月的最后一天,而是返回本月的“0号”,一个不存在的日期,于是脚本就取不到数据了。
后来经过上网上查找资料发现应该这样用:date_sub(current_date(),interval 1 day)
于是修改了脚本,希望下个月1号的时候不要再出错。
一个想当然的写法导致了这个错误,好在问题不大。
相关阅读 更多 +