mysql时间模糊查询_mysql中那些根据时间查询的sql语句
生活随笔
收集整理的這篇文章主要介紹了
mysql时间模糊查询_mysql中那些根据时间查询的sql语句
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在我們使用mysql是免不了要根據時間去查詢一些數據,這個時候一般有幾種方式可以去查詢。
第一種數據庫,如果有數據新建時間可以以這個時間為節點,通過當前時間條件去比較時間來查詢到此段時間內的數據
例如:這個是可傳參數的
SELECT * FROM 表名 a WHEREAND DATE_FORMAT(a.out_date,'%Y-%m-%d %H:%i:%S') >= DATE_FORMAT(#{beginOutPoundDate},'%Y-%m-%d %H:%i:%S')AND DATE_FORMAT(a.out_date,'%Y-%m-%d %H:%i:%S') <= DATE_FORMAT(#{endOutPoundDate},'%Y-%m-%d %H:%i:%S')不過如果指定就查詢一天之內或者一周之內的數據那又如何?
不慌來上菜:
1.查詢一天之內的數據時間從今天的零0點0分0秒開始---到23點59分59秒結束,查詢完在給他按更新時間排個序!!
SELECT * FROM 表名 aWHERE a.out_date >= DATE_FORMAT(CURDATE(),'%Y-%m-%d %H:%i:%s')AND a.out_date <= DATE_SUB( DATE_ADD(CURDATE(), INTERVAL 1 DAY),INTERVAL 1 SECOND)ORDER BY a.update_date ASC2.查詢一周內的數據:有有條件的有沒條件的 還有上周的
-- ?有條件SELECT * FROM 表名 a WHERE DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(a.out_date)-- 沒條件select * from Tabel名 where 時間字段名 between current_date()-7 and sysdate()上周SELECT * FROM 表名 WHERE YEARWEEK(date_format(時間字段名,'%Y-%m-%d')) = YEARWEEK(now())-1;3.查詢一個月內數據
SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(時間字段名)4.查詢本月的數據
SELECT * FROM 表名 WHERE DATE_FORMAT( 時間字段名, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )5.查詢上個月的數據
SELECT * FROM 表名 WHERE PERIOD_DIFF( date_format( now( ) , '%Y%m' ) , date_format( 時間字段名, '%Y%m' ) ) =16.查詢當前6個月前的數據
SELECT * FROM 表名 WHERE 時間字段名 between date_sub(now(),interval 6 month) and now();7.查詢多少秒內的數據
SELECT count( * ) AS c, sum( if( logusertype = 2, logusertype, 0 ) ) / 2 AS a, sum( if( logusertype = 3, logusertype, 0 ) ) /3 AS bFROM testlog WHERE UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP( logendtime )<=308.查詢一年的數據
-- 查詢一年的SELECT * FROM table_name WHERE condition1 AND condition2 AND DATE_SUB(CURDATE(), INTERVAL 1 YEAR) <= date(column_name);-- 查詢一年的select * from 表名 where year(create_date)=year(now());-- 查詢上年的select * from 表名 where year(create_date)=year(date_sub(now(),interval 1 year));9.查詢昨天的數據(只有昨天的)還有只包括昨天和今天的
-- 只有昨天的SELECT * FROM 表名 WHERE DATEDIFF(字段,NOW())=-1; -- 同理,查詢前天的就是-2-- 包括昨天和今天的SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 時間字段名) <= 110.查詢本季的和上季的數據
-- 本季度select * from 表名 where quarter(create_date)=quarter(now());-- 上季度select * from 表名 where quarter(create_date)=quarter(date_sub(now(),interval 1 quarter)); 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的mysql时间模糊查询_mysql中那些根据时间查询的sql语句的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jvm调优 java_opt_Java-
- 下一篇: 重构碎片化知识_day22重构力-思维导