MySQL时间段查询语句

mysql历史时间查询

今天、昨天、7天、近30天、本月、上一个月

-- 查询今天
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 表名 WHERE YEARWEEK(date_format(时间字段名,'%Y-%m-%d')) = YEARWEEK(now());
-- 查询上周
SELECT * FROM 表名 WHERE YEARWEEK(date_format(时间字段名,'%Y-%m-%d')) = YEARWEEK(now())-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));
-- 查询距离当前现在某(例如:6)个月的
SELECT * FROM 表名 WHERE 时间字段名 between date_sub(now(),interval 某(例如:6month) and now();

指定时间段的数据

-- 查询指定时间段的数据 时间在 2020-1-1 00:00:00 到 2021-1-1 00:00:00之间的数据
SELECT * FROM 表名 WHERE (时间) between  '2020-1-1 00:00:00'  and '2021-1-1 00:00:00';
SELECT * FROM 表名 WHERE (时间) >='2020-1-1 00:00:00'  and (时间) < '2021-1-1 00:00:00';

备注一些基本的时间函数的说明:

  1. 获取系统的当前时间
    CURDATE();
    NOW();
    
  2. 获取时间的差
    period_diff()
    datediff(date1,date2)
    timediff(time1,time2)
    
  3. 时间加减
    -- 减
    date_sub()
    -- 加
    date_add()
    adddate()
    addtime()
    -- 加
    period_add(P,N)
    
  4. 时间格式化
    -- MySQL日期格式化函数date_format()
    date_format(date, format)
    unix_timestamp()
    str_to_date(str, format)
    -- MySQL时间戳格式化函数from_unixtime
    from_unixtime(unix_timestamp, format) 
    
  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值