当前日期: 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