mysql获取当天,昨天,本周,本月,上周,上月的起始时间

--  今天
SELECT  DATE_FORMAT(NOW(), ' %Y-%m-%d 00:00:00 ' AS   ' 今天开始 ' ;
SELECT  DATE_FORMAT(NOW(), ' %Y-%m-%d 23:59:59 ' AS   ' 今天结束 ' ;

--  昨天
SELECT  DATE_FORMAT( DATE_SUB(CURDATE(), INTERVAL  1   DAY ),  ' %Y-%m-%d 00:00:00 ' AS   ' 昨天开始 ' ;
SELECT  DATE_FORMAT( DATE_SUB(CURDATE(), INTERVAL  1   DAY ),  ' %Y-%m-%d 23:59:59 ' AS   ' 昨天结束 ' ;

--  上周
SELECT  DATE_FORMAT( DATE_SUB( DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE())  DAY ), INTERVAL  1  WEEK),  ' %Y-%m-%d 00:00:00 ' AS   ' 上周一 ' ;
SELECT  DATE_FORMAT( SUBDATE(CURDATE(), WEEKDAY(CURDATE())  +   1 ),  ' %Y-%m-%d 23:59:59 ' AS   ' 上周末 ' ;

--  本周
SELECT  DATE_FORMAT( SUBDATE(CURDATE(),DATE_FORMAT(CURDATE(), ' %w ' ) - 1 ),  ' %Y-%m-%d 00:00:00 ' AS   ' 本周一 ' ;
SELECT  DATE_FORMAT( SUBDATE(CURDATE(),DATE_FORMAT(CURDATE(), ' %w ' ) - 7 ),  ' %Y-%m-%d 23:59:59 ' AS   ' 本周末 ' ;
--  上面的本周算法会有问题,因为mysql是按照周日为一周第一天,如果当前是周日的话,会把时间定为到下一周.
SELECT  DATE_FORMAT( DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE())  DAY ),  ' %Y-%m-%d 00:00:00 ' AS   ' 本周一 ' ;
SELECT  DATE_FORMAT( DATE_ADD(SUBDATE(CURDATE(), WEEKDAY(CURDATE())), INTERVAL  6   DAY ),  ' %Y-%m-%d 23:59:59 ' AS   ' 本周末 ' ;

--  上月
SELECT  DATE_FORMAT( DATE_SUB(CURDATE(), INTERVAL  1   MONTH ),  ' %Y-%m-01 00:00:00 ' AS   ' 上月初 ' ;
SELECT  DATE_FORMAT( LAST_DAY(DATE_SUB(CURDATE(), INTERVAL  1   MONTH )),  ' %Y-%m-%d 23:59:59 ' AS   ' 上月末 ' ;

--  本月
SELECT  DATE_FORMAT( CURDATE(),  ' %Y-%m-01 00:00:00 ' AS   ' 本月初 ' ;

SELECT DATE_FORMAT( LAST_DAY(CURDATE()), '%Y-%m-%d 23:59:59'AS '本月末';


转载地址:http://www.cppblog.com/tx7do/archive/2017/07/19/215119.html

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值