做报表经常要写日期函数,按截止昨天的情况来写
Mysql:
今天:curdate()
本月1日:date_sub(date_sub(curdate(),interval 1 day),interval day(date_sub(curdate(),interval 1 day))-1 day)
昨天:select date_sub(curdate(),interval 1 day)
上周的周一:select date_sub(date_sub(curdate(),interval 1 day),interval weekday(date_sub(curdate(),interval 1 day))+7 day)
上周的昨天:select date_sub(curdate(),interval 8 day)
上月1日:select date_sub(date_sub(date_sub(curdate(),interval 1 day),interval day(date_sub(curdate(),interval 1 day))-1 day),interval 1 month)
上月的昨天:select date_sub(date_sub(curdate(),interval 1 day),interval 1 month)
Informix:
今天:today
本月1日:today-1-day(today-1)+1
昨天:today-1
上周的周一:today-7-(case weekday(today-1) when 0 then 7 else weekday(today-1) end)
上周的昨天:today-8
上月1日:today-1-day(today-1)+1 - 1 units month
上月的昨天:today-1- 1 units month
Hive:
今天:select current_date
昨天:select date_sub(current_date,1)
本月1日:date_format(current_date,'yyyy-MM-01')
本年1月1日:date_format(current_date,'yyyy-01-01')
去年1月1日:add_months(date_format(current_date,'yyyy-01-01'),-12)