免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1910 | 回复: 0
打印 上一主题 下一主题

MySQL中取昨天的日期 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-02 22:33 |只看该作者 |倒序浏览
       由于数据仓库ETL的需要,每天要去取一个MySQL前一天的数据,就写了个小脚本扔在Crontab里面跑。
很简单的一个脚本,一直运行都很正常。2月1号的时候执行时却都没取到数据,当时都没有在意,于是手动取了数据。没想到3月1号执行又出了问题,再次没有数据。今天仔细检查了下脚本,发现是我使用Oracle的一个习惯导致了这个错误。
       Oracle中的时间是Date类型,非常好用,以天问单位,可以随意的加减。我把这一习惯带到了MySQL中,我在脚本中取前一天的日期用的是“current_date()-1”,这个表达式在平时执行还好,可是在每月的1号时执行时并非像我想象中的那样得到上个月的最后一天,而是返回本月的“0号”,一个不存在的日期,于是脚本就取不到数据了。
       后来经过上网上查找资料发现应该这样用:date_sub(current_date(),interval 1 day)
       于是修改了脚本,希望下个月1号的时候不要再出错。
       一个想当然的写法导致了这个错误,好在问题不大。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/68003/showart_1849186.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP