Mysql日期函数

 

  • DAYOFWEEK与WEEKDAY(都是返回星期索引)

例如:2019.3.11为星期一

   select  DAYOFWEEK ('2019.3.11') 返回“2”;

   select  WEEKDAY ('2019.3.11') 返回“0”;

  • DAYOFMONTH(返回一个月的第几天)

   select  DAYOFMONTH ('2019.3.11') 返回“11”;

  • DAYOFYEAR(返回一年中的第几天)

   select  DAYOFYEAR ('2019.3.11') 返回“70”;

  • MONTH(返回第几个月)

   select  MONTH ('2019.3.11') 返回“3”;

  • DAYNAME(返回星期名字)

   select  DAYNAME ('2019.3.11') 返回“Monday”;

  • MONTHNAME(返回月份名字)

   select  MONTHNAME ('2019.3.11') 返回“March”;

  • QUARTER(返回季度)

   select  QUARTER ('2019.3.11') 返回“1”;

  • YEAR(返回年份)

   select  YEAR ('2019.3.11') 返回“2019”;

  • TO_DAYS与DATEDIFF函数都是计算两个时间间隔的天数

   select to_days(now()) - to_days('20190308') 返回“3”;

   select DATEDIFF(now(),'20190308') 返回“3”;

  • TIMESTAMPDIFF函数

    计算两日期时间之间相差的天数,秒数,分钟数,周数,小时数,这里主要分享的是通过MySql内置的函数 TimeStampDiff() 实现。

函数 TimeStampDiff() 是MySQL本身提供的可以计算两个时间间隔的函数,语法为:TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)

返回日期或日期时间表达式datetime_expr1 和datetime_expr2the 之间的整数差。其中unit单位有如下几种,分别是:FRAC_SECOND (microseconds), SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR 。该参数具体释义如下:

FRAC_SECOND   表示间隔是毫秒

SECOND   秒

MINUTE   分钟

HOUR   小时

DAY   天

WEEK   星期

MONTH   月

QUARTER   季度

YEAR   年

例如:select TIMESTAMPDIFF(week,'2019-03-04','2019-03-30') 返回“-3”;

  • DATE_SUB函数

    从DATE或DATETIME值中减去时间值(或间隔)。 下面说明了DATE_SUB()函数的语法:DATE_SUB(start_date,INTERVAL expr unit);

SQLDATE_SUB()函数接受两个参数:start_date是DATE或DATETIME的起始值。expr是一个字符串,用于确定从起始日期减去的间隔值。unit是expr可解析的间隔单位,例如DAY,HOUR等

例如:select DATE_SUB('2019-03-04',INTERVAL 1 WEEK) 返回“2019-02-25”;

 

1,查询当天(今天)的数据

SELECT * FROM `order` WHERE TO_DAYS(order_time) = TO_DAYS(NOW())

2,查询昨天的数据

SELECT * FROM `order` WHERE TO_DAYS(NOW()) - TO_DAYS(order_time) = 1

3,查询最近7天的数据(包括今天一共7天)

SELECT * FROM `order` where DATE_SUB(CURDATE(), INTERVAL 7 DAY) < date(order_time)

4,查询最近30天的数据(包括今天一共30天)

SELECT * FROM `order` where DATE_SUB(CURDATE(), INTERVAL 30 DAY) < date(order_time)

5,查询当月(本月)的数据

SELECT * FROM `order` WHERE DATE_FORMAT(order_time, '%Y%m') = DATE_FORMAT(CURDATE(), '%Y%m')

6,查询上个月的数据

SELECT * FROM `order` WHERE PERIOD_DIFF(DATE_FORMAT(NOW(),'%Y%m'), DATE_FORMAT(order_time,'%Y%m')) =1

7,查询本季度的数据

SELECT * FROM `order` WHERE QUARTER(order_time)=QUARTER(NOW())

8,查询上季度的数据

SELECT * FROM `order` WHERE QUARTER(order_time)=QUARTER(DATE_SUB(NOW(),INTERVAL 1 QUARTER))

9,查询当年(今年)的数据

SELECT * FROM `order` WHERE YEAR(order_time)=YEAR(NOW())

10,查询去年的数据

SELECT * FROM `order` WHERE YEAR(order_time)=YEAR(DATE_SUB(NOW(),INTERVAL 1 YEAR))

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值