前几天查看别人代码发现一个有意思的sql,看了以后发现自己以前真是尼玛傻啊~~~
当时的业务需求是需要三个报表,当天的、本月的、本年的。
按照以前自己的想法就是找到开始时间和结束时间,
在sql语句中使用between。。。and。。。语句,别人的代码是:
选取本年的
select * from order o where DATE_FORMAT(o.created_at,%Y) = DATE_FORMAT(SYSDATE(),%Y);
同理可得本月,当天的数据:
select * from order o where DATE_FORMAT(o.created_at,%Y%m) = DATE_FORMAT(SYSDATE(),%Y%m);
select * from order o where DATE_FORMAT(o.created_at,%Y%m%d) = DATE_FORMAT(SYSDATE(),%Y%m%d);