博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

关于mysql时间处理

Posted on 2017-02-28 17:21  one_stone  阅读(335)  评论(0编辑  收藏  举报

当前日期: SELECT CURDATE();

当前时间:
               SELECT CURDATE() UNION
               SELECT CURDATE()+0 union
               SELECT CURTIME() union
               SELECT NOW();

当前是几号 : SELECT DAY(CURDATE());
日期做减法:SELECT date_sub(curdate(),interval day(curdate())-1 day); 其中day(curdate())-1可以认为是一个数值,我需要的是昨天的日子
                 用当前日期带年月日的-间隔值,day是单位,也可以用DATEDIFF(expr,expr2) 两个日期的间隔天数
                 这句意思是----》求出当前月初的日期

日期做加法  date_add(date_sub(curdate(),interval day(curdate())-1 day),interval 1 month);

          对第一个参数日期类型的 进行加一个月

       技巧:看一个函数的开始位置和结束位置在什么地方,里面的参数是怎么排列的,间隔是什么

        这句意思是---》求出下一个月的月初日期

DATE_ADD(date(CONCAT(YEAR(CURDATE()),'-',elt(quarter(curdate()),1,4,7,10),'-',1)),interval 1 QUARTER)

        这句意思是---》求出下一个季度的日期

思路是:

1.求出当前季度
2.根据季度推算出季度的第一个月是什么
3.既然是季度,就需要年份来区分,这是哪一年的哪个季度
4.qurater(curage()---->当前季度
elt(quarter(curdate()),1,4,7,10)----->季度所在月数组中的第一个月 elt是把第一个参数跟后面数组列表元素值进行匹配---》结果是对应数值所在数组的下标
YEAR(CURDATE())-------》当前日期的年份
最后用字符串拼接,格式yyyy-月-1
5.对刚才拼接的日期字符串进行日期格式化 date(dateString)---->目的是我要用date_add函数对当前日期进行操作
eg: date_add(date_add(date(concat(year(curdate()),'-',elt(quarter(curdate()),1,4,7,10),'-',1)),interval 1 quarter),interval 1 hour);
方法就是拆分:各个击破

 

参考:http://www.cnblogs.com/ggjucheng/p/3352280.html

 

tsxf