最常见(今天,昨天,本周,本月)
- 今天:
SELECT * FROM (表) WHERE TO_DAYS(字段) = TO_DAYS(NOW())
- 昨天:
第一种:SELECT * FROM (表) WHERE DATEDIFF(,NOW())=-1
;
第二种:SELECT * FROM (表) WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 字段) <= 1
- 本周:
SELECT * FROM (表) WHERE YEARWEEK(date_format(字段,'%Y-%m-%d')) = YEARWEEK(now())
; 其中%Y-%m-%d表示格式化日期成 '2020-01-01'这样子 - 上周:
SELECT * FROM (表) WHERE YEARWEEK(date_format(字段,'%Y-%m-%d')) = YEARWEEK(now()) - 1
;上n周是 - n ,下一周是 + 1,下n周是 + n; - 本月:
SELECT * FROM (表) WHERE DATE_FORMAT( 字段, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )
; - 上月:
SELECT * FROM (表) WHERE period_diff(date_format(now(), '%y%m'), date_format(字段, '%y%m')) = 1
;上n月是 = n,下月是 = - 1,下n月是 - n; - 本季度:
SELECT * FROM (表) WHERE quarter(字段)=quarter(now())
- 上季度:
SELECT * FROM (表) WHERE QUARTER(字段)=QUARTER(DATE_ADD(NOW(),INTERVAL -1 QUARTER))
其中 -1改为1的话就是下季度,以此类推 - 今年:
SELECT * FROM (表) WHERE YEAR(字段) = YEAR(NOW())
- 去年:
SELECT * FROM (表) WHERE YEAR(字段) = YEAR(DATE_ADD(NOW(),INTERVAL -1 YEAR))
其中 -1改为1的话就是明年,以此类推
常见的关于日期的函数
DATE_ADD() :函数向日期添加指定的时间间隔(日期增加!)
例:SELECT id,DATE_ADD(create_time(你的字段),INTERVAL 15 DAY) AS date FROM order
函数的作用:把查询出来的create_time加上15天DATE_SUB() :函数从日期减去指定的时间间隔(日期减少!)
例:SELECT id,DATE_SUB(create_time(你的字段),INTERVAL 15 DAY) AS date FROM order
函数的作用:把查询出来的create_time减少15天-
DATEDIFF(): 函数返回两个日期之间的天数(前面的日期减后面的日期)
例:SELECT shop_name,open_time,end_time, DATEDIFF(end_time,open_time) AS totalDay FROM shop
函数的作用:算出商店的开店时长
-
DATE_FORMAT() :函数用于以不同的格式显示日期/时间数据(日期格式化)
例1:SELECT shop_name,DATE_FORMAT(open_time,'%Y-%m-%d') open_time,end_time FROM shop
例子2:SELECT shop_name,DATE_FORMAT(open_time,'%Y-%M-%d-%u-%W') open_time,end_time FROM shop
注:M月的英文,u周(00-53)星期一是一周的第一天,W星期名 NOW() 返回当前的日期和时间。
CURDATE() 返回当前的日期。
-
CURTIME() 返回当前的时间。
5,6,7的区别如下图:
-
EXTRACT(): 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等
例:SELECT shop_name, EXTRACT( YEAR FROM open_time ) AS YEAR , EXTRACT( MONTH FROM open_time ) AS MONTH , EXTRACT( DAY FROM open_time ) AS DAY FROM shop
你好! 希望对你有用,谢谢!