Mysql 常见时间函数整理

来源:互联网 发布:台湾中华电信网络制式 编辑:程序博客网 时间:2024/06/04 18:37

这两天运营有需求,需要按照每周来统计表的数据。想想看如果自己统计每周数据,还要按周来查询,然后做union,有没有方便的函数呢?查了下,Mysql提供了week函数,可以方便的从日期中获取到周次,这样一来,便可以在分组时,按照week来分组,如group by week(create_time)。顺便整理了下,日常可能用到的一些时间函数,方便日后使用。

SELECT   -- 获取当前执行时间,包含日期  NOW()     -- 获取当前执行日期  , CURDATE()  -- 获取当前执行时间,没有日期    , CURTIME()  -- 获取当前执行日期2  , DATE(NOW())  -- 格式化成 2017-05-16 00:18:32 大Y,和大H,其他小写  , DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s')  -- 或者用 大T来表达24小时制  , DATE_FORMAT(NOW(), '%Y-%m-%d %T')  -- 周次,周日作为每周的第一周,等价DATE_FORMAT(NOW(), '%U') 或 EXTRACT(WEEK FROM NOW())  , WEEK(NOW(),2)    -- 周次,周一作为每周的第一周,等价DATE_FORMAT(NOW(), '%u')  , WEEK(NOW(),3)  -- 抽取月次  , EXTRACT(MONTH FROM NOW())  -- 星期索引 0 周一 1 周二 ... 6 周天   , WEEKDAY(NOW())  -- 获取系统时间,区别于前面的执行时间    , SYSDATE()  , SLEEP(1)  -- 再获取系统时间,会间隔1s  , SYSDATE()  -- 时间差,天数用day,后面减去前面 还可以是 FRAC_SECOND、SECOND、 MINUTE、 HOUR、 DAY、 WEEK、 MONTH、 QUARTER或 YEAR  , TIMESTAMPDIFF(DAY,'2017-05-16 21:06:00','2017-05-16 21:06:50') TIMESTAMPDIFFResult  -- 日期差,前面减后面  , DATEDIFF('2008-12-30','2008-12-29')  -- 增加天数  , DATE_ADD(NOW(), INTERVAL 1 DAY)  -- 减去天数  , DATE_SUB(NOW(), INTERVAL 1 DAY)  -- 获取是一年中的第几天,从1开始  , DAYOFYEAR(NOW())  -- 获取是一月中的第几天,从1开始  , DAYOFMONTH(NOW())  -- 获取是一周中的第几天,从周天开始  , DAYOFWEEK(NOW())  -- 获取每年第一天  , DATE_SUB(CURDATE(), INTERVAL DAYOFYEAR(NOW())-1 DAY)  -- 获取某日期后第几周  , DATE_ADD('2017-01-01', INTERVAL 2 WEEK);

执行结果:


原创粉丝点击