1.DAY(); WEEK(); MONTH(); YEAR();
SELECT DAY(CURDATE()) #查询今天是这个月的第几天
SELECT MONTH(CURDATE()) #查询今天是今年的第几月
SELECT YEAR(CURDATE()) #查询今天是几几年
SELECT WEEK(CURDATE()) #查询今天是今年的第几个星期
2. NOW(),CURDATE(),CURTIME()
SELECT NOW(),CURDATE(),CURTIME()
结果:
NOW() 2008-12-29 16:25:46
CURDATE() 2008-12-29
CURTIME() 16:25:46
3.查询上两个月的数据与查询到上两月1号的数据,查询方法不一样
date >= DATE(NOW())-INTERVAL 2 MONTH ##查询上两个月
DATE_FORMAT(time,'%Y-%m') >= DATE_FORMAT( DATE(NOW())-INTERVAL 2 MONTH,'%Y-%m') ##查询到上两月1号的
4.查询当前周数 YEARWEEK('2019-3-24'); WEEKOFYEAR('2019-1-11');
SELECT YEARWEEK('2019-3-24'); ##当期日期的周的唯一标识
SELECT WEEKOFYEAR('2019-1-11'); ##当前日期所在周数
5.PERIOD_DIFF(P1,P2) 函数
返回周期P1和P2之间的月数。 P1和P2格式为YYMM(即'%y%m')或YYYYMM(即'%Y%m')
SELECT * FROM sf_resource WHERE PERIOD_DIFF( DATE_FORMAT(CURDATE(),'%Y%m'),DATE_FORMAT(purchase_time,'%Y%m'))=1
6.TIMESTAMPDIFF() 与DATEDIFF()
DATEDIFF(date1,date2):返回两个日期间相差的天数,date1-date2.只有日期为参加计算,分秒时被忽略
TIMESTAMPDIFF(time,timestamp1,timestamp2) :以time为单位,计算timestamp2-timestamp1
SELECT DATEDIFF('2019-4-4 09:00:00', '2019-4-2 22:00:00');
--->2
SELECT DATEDIFF('2019-4-4 09:00:00', '2019-4-2 9:00:00');
--->2
SELECT TIMESTAMPDIFF(DAY, '2019-04-1 23:59:00', '2019-04-2 00:00:00');
--->0
SELECT TIMESTAMPDIFF(HOUR, '2019-04-1 23:59:00', '2019-04-2 00:00:00');
--->0
SELECT TIMESTAMPDIFF(MINUTE, '2019-04-1 23:59:00', '2019-04-2 00:00:00');
--->1
SELECT TIMESTAMPDIFF(SECOND, '2019-04-1 23:59:00', '2019-04-2 00:00:00');
--->60