-
直接判断时间大小
c.scandate >= date ‘2012-07-29’ -
now(): 2013-01-17 13:07:53
-
curdate(): 2013-01-17
-
sysdate(): 2013-01-17 13:07:53
-
curtime(): 13:07:53
-
TO_DAYS()函数 返回一个天数! 什么天数? 从年份0开始的天数
- DATE_SUB(date,INTERVAL expr type) 函数从日期减去指定的时间间隔。date 参数是合法的日期表达式。expr 参数是您希望添加的时间间隔。type 是时间单位(年月日时分秒)
- TIMESTAMPDIFF(DAY,字段名,NOW()) as
cp_time
计算两个时间的差(天、小时、分钟等等)
比较的单位interval可以为以下数值
FRAC_SECOND。表示间隔是毫秒
SECOND:秒
MINUTE:分钟
HOUR:小时
DAY:天
WEEK:星期
MONTH:月
QUARTER:季度
YEAR:年
- DATE_FORMAT(date,format) 函数用于以不同的格式显示日期/时间数据。 date 参数是合法的日期。format 规定日期/时间的输出格式。
%Y%M 4 位年,月名
%y%m 2 位年,月数值(00-12)
"DATE_FORMAT(create_time, '%Y-%m-%d %H:%i:%s')": "2021-07-13 11:34:20"
- PERIOD_DIFF()函数返回两日期之间的差异。结果以月份计算。
SELECT PERIOD_DIFF(201703, 201803); // -12相差12个月
时间必须是201703这样的格式,不能带有-或者:
- QUARTER(date) 返回给定日期值的一年中的季度(1到4之间的数字)。
1月至3月返回1
4月至6月返回2
7月至9月返回3
10月至12月返回4
-
YEAR()函数返回一个指定日期的年份值,范围为1000到9999,如果日期为零,YEAR()函数返回0。
SELECT YEAR(‘2018-01-01’); //2018
SELECT YEAR(NOW());//当前年 2021 -
YEARWEEK 是获取年份和周数的一个函数,函数形式为 YEARWEEK(date[,mode])
今天
select * from 表名 where to_days(时间字段名) = to_days(now());
昨天
SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名) <= 1
7天
SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(时间字段名)
近30天
SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(时间字段名)
本月
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
查询本季度数据
select * from ht_invoice_information
where QUARTER(create_date)=QUARTER(now());
查询上季度数据
select * from ht_invoice_information
where QUARTER(create_date)=QUARTER(DATE_SUB(now(),interval 1 QUARTER));
查询本年数据
select * from ht_invoice_information
where YEAR(create_date)=YEAR(NOW());
查询上年数据
select * from ht_invoice_information
where year(create_date)=year(date_sub(now(),interval 1 year));
查询当前这周的数据
SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,’%Y-%m-%d’)) = YEARWEEK(now());
查询上周的数据
SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,’%Y-%m-%d’)) = YEARWEEK(now())-1;//国外一周是从周日到周六来算的 SELECT * FROM ordersrecord WHERE YEARWEEK(ordertime,1) =YEARWEEK(date_sub(curdate(),interval 7 day),1)
查询当前月份的数据
select name,submittime from enterprise where date_format(submittime,’%Y-%m’)=date_format(now(),’%Y-%m’)
查询距离当前现在6个月的数据
select name,submittime from enterprise where submittime between date_sub(now(),interval 6 month) and now();