时间MySql查询大全和使用大全

 //查询15天之前得数据(modifydate)是数据库得时间字段格式yyyy-MM-dd hh:mm:ss
SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 15 DAY) > date(modifydate);

//删除十五天之前的数据(log_time_YMD是数据库得时间字段格式yyyy-MM-dd hh:mm:ss
 1:delete From 表名 where DATE_SUB(CURDATE(), INTERVAL 15 DAY) > date(log_time_YMD);

//删除七天之前的数据(modifydate是数据库得时间字段格式yyyy-MM-dd hh:mm:ss
2:delete From 表名 where DATE(modifydate) <= DATE(DATE_SUB(NOW(),INTERVAL 7 day))

//时间区间查询
1:select * from 表名 where 日期列 >= to_date('2015-10-20 00:00:00','yyyy-mm-dd hh24:mi:ss') and t.日期列 <= to_date('2015-10-20 23:59:59','yyyy-mm-dd hh24:mi:ss')
//时间区间查询
2:select * from 表名 where 日期列 between to_date('2015-10-20 00:00:00','yyyy-mm-dd hh24:mi:ss')and to_date('2015-10-20 23:59:59','yyyy-mm-dd hh24:mi:ss')


//如果数据库得时间格式是yyyyMMdd --19900808 sdate 时间字段) (?客户传过来的时间)
 SELECT * FROM 表名 WHERE 1 = 1 and 表名.时间字段>= ? and 表名.时间字段 >= ?

//查询今天得全部数据
 select * from 表名 where to_days(时间字段名) = to_days(now());

//查询昨天全部得数据
 SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS(数据库时间字段) = 1

查询本月得数据
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 表名 where QUARTER(数据库字段)=QUARTER(now());

//查询上季度数据
select * from 表名 where QUARTER(时间字段)=QUARTER(DATE_SUB(now(),interval 1 QUARTER));

//查询本年数据
select * from 表名 where YEAR(时间字段)=YEAR(NOW());

查询上年数据
select * from 表名 where year(时间字段)=year(date_sub(now(),interval 1 year));

//查询当前这周得数据
 SELECT * FROM 表名 WHERE YEARWEEK(date_format(时间字段,'%Y-%m-%d')) = YEARWEEK(now());

//查询上周数据
SELECT *  FROM 表名 WHERE YEARWEEK(date_format(时间字段,'%Y-%m-%d')) = YEARWEEK(now())-1;

//查询上一个月得数据
select *  from 表名 where date_format(时间字段,'%Y-%m')=date_format(DATE_SUB(curdate(), INTERVAL 1 MONTH),'%Y-%m')

//查询距离当前现在6个月的数据
select * from 表名 where 时间字段 between date_sub(now(),interval 6 month) and now()

//时间区间查询
SELECT * FROM 表名 WHERE 时间字段 BETWEEN '2019-03-01 00:00:00' AND '2019-07-01 00:00:00';
SELECT * FROM 表名 WHERE 时间字段 >= '2019-03-01 00:00:00' AND 时间字段<= '2019-07-01 00:00:00';

SELECT * FROM operation_log_details WHERE modifydate  >= '2019-03-01 00:00:00' AND modifydate <= '2019-07-01 00:00:00' and 字段<> 4 ORDER BY 字段 desc;
以上除非特殊说明其余的时间字段都是yyyy-MM-dd HH:mm:ss格式

补充操作时间:

/*获取当前时间*/
SELECT
TIME_TO_SEC(NOW()),
NOW(),
current_timestamp(),
REPLACE(unix_timestamp(current_timestamp(3)),'.','');
 
/*当前时间加1毫秒*/
SELECT DATE_ADD(NOW(),INTERVAL 1 MICROSECOND);
 
/*当前时间减1毫秒*/
SELECT DATE_ADD(NOW(),INTERVAL -1 MICROSECOND);
 
/*当前时间加1秒*/
SELECT DATE_ADD(NOW(),INTERVAL 1 SECOND);
 
/*当前时间减1秒*/
SELECT DATE_ADD(NOW(),INTERVAL -1 SECOND);
 
/*当前时间加1分*/
SELECT DATE_ADD(NOW(),INTERVAL 1 MINUTE);
 
/*当前时间减1分*/
SELECT DATE_ADD(NOW(),INTERVAL -1 MINUTE);
 
/*当前时间加1小时*/
SELECT DATE_ADD(NOW(),INTERVAL 1 HOUR);
 
/*当前时间减1小时*/
SELECT DATE_ADD(NOW(),INTERVAL -1 HOUR);
 
/*当前日期加1天*/
SELECT DATE_ADD(NOW(),INTERVAL 1 DAY);
 
/*当前日期减1天*/
SELECT DATE_ADD(NOW(),INTERVAL -1 DAY);
 
/*当前日期加1月*/
SELECT DATE_ADD(NOW(),INTERVAL 1 MONTH);
 
/*当前日期减1月*/
SELECT DATE_ADD(NOW(),INTERVAL -1 MONTH);
 
/*当前日期加1季度*/
SELECT DATE_ADD(NOW(),INTERVAL 1 QUARTER);
 
/*当前日期减1季度*/
SELECT DATE_ADD(NOW(),INTERVAL -1 QUARTER);
 
/*当前日期加1年*/
SELECT DATE_ADD(NOW(),INTERVAL 1 YEAR);
 
/*当前日期减1年*/
SELECT DATE_ADD(NOW(),INTERVAL -1 YEAR);

/*当前时间转换成秒*/
select UNIX_TIMESTAMP(NOW()) ;
/*当前时间转换成毫秒*/
select UNIX_TIMESTAMP(NOW()) * 1000;
 
 















 




 
 



 
 


posted on 2019-05-27 14:07  UnmatchedSelf  阅读(1587)  评论(0编辑  收藏  举报

导航