数据库时间字段条件操作善用TO_DAYS函数等
to_days函數(shù):返回從0000年(公元1年)至當(dāng)前日期的總天數(shù)。注意如下舉例中的幾個(gè)字段名一般為YMD或Y-M-D格式,非時(shí)間戳。
1、利用to_days函數(shù)查詢今天的數(shù)據(jù):
select * from 表名 where to_days(時(shí)間字段名) = to_days(now());
2、利用to_days函數(shù)查詢昨天數(shù)據(jù)
SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) – TO_DAYS( 時(shí)間字段名) <= 1
其他:
1.查詢7天數(shù)據(jù)
SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(時(shí)間字段名)
2.查詢近30天
SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(時(shí)間字段名)
3.查詢本月
SELECT * FROM 表名 WHERE DATE_FORMAT( 時(shí)間字段名, ‘%Y%m' ) = DATE_FORMAT( CURDATE( ) , ‘%Y%m' )
4.查詢上一月
SELECT * FROM 表名 WHERE PERIOD_DIFF( date_format( now( ) , ‘%Y%m' ) , date_format( 時(shí)間字段名, ‘%Y%m' ) ) =1
5.查詢本季度數(shù)據(jù)
select * from 表名 where QUARTER(create_date)=QUARTER(now());
6.查詢上季度數(shù)據(jù)
select * from 表名 where QUARTER(create_date)=QUARTER(DATE_SUB(now(),interval 1 QUARTER));
7.查詢本年數(shù)據(jù)
select * from 表名 where YEAR(create_date)=YEAR(NOW());
8.查詢上年數(shù)據(jù)
select * from 表名 where year(create_date)=year(date_sub(now(),interval 1 year));
9.查詢當(dāng)前這周的數(shù)據(jù)
SELECT name,submittime FROM 表名 WHERE YEARWEEK(date_format(submittime,'%Y-%m-%d')) = YEARWEEK(now());
轉(zhuǎn)載于:https://blog.51cto.com/13238147/2348800
總結(jié)
以上是生活随笔為你收集整理的数据库时间字段条件操作善用TO_DAYS函数等的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 30 ArcGIS 许可管理器常见问题(
- 下一篇: mkswap命令详解