mysql查询昨天 一周前 一月前 一年前的数据 |
本文标签:一周前,一月前,一年前 mysql 昨天 一周前 一月前 一年前的数据 这里主要用到了DATE_SUB, 参考如下 复制代码 代码如下: SELECT * FROM yh_content where inputtime>DATE_SUB(CURDATE(), INTERVAL 1 DAY) where inputtime>DATE_SUB(CURDATE(), INTERVAL 1 WEEK) where inputtime>DATE_SUB(CURDATE(), INTERVAL 1 MONTH) where inputtime>DATE_SUB(CURDATE(), INTERVAL 1 YEAR) 注意:如果数据库中时间以UNIX时间戳的形式存放的话,在时间对比上需要更改为统一格式: DATE_SUB()返回的是格式化后的时间:2014-05-17 需要用UNIX_TIMESTAMP()转化为UNIX时间戳形式对比: 复制代码 代码如下: where inputtime>UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 DAY)) where inputtime>UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 WEEK)) where inputtime>UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 MONTH)) where inputtime>UNIX_TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 YEAR)) 详细请查看MySql时间函数:DATE_SUB、DATE_ADD、UNIX_TIMESTAMP等函数的用法 mysql中获取一天、一周、一月时间数据的各种sql语句写法 今天抽时间整理了一篇mysql中与天、周、月有关的时间数据的sql语句的各种写法,部分是收集资料,全部手工整理,自己学习的同时,分享给大家,并首先默认创建一个表、插入2条数据,便于部分数据的测试,其中部分名词或函数进行了解释说明 。直入主题! 创建表: 复制代码 代码如下: create table if not exists t ( id int, addTime datetime default 0000-00-00 00:00:00′ ) 添加两条初始数据: insert t values(1, 2012-07-12 21:00:00′); 一、当天或当日插入的数据: 1、传统对比判断:SELECT * FROM `t` WHERE DATE_FORMAT(addTime,%Y-%m-%d) = date_format(now(),%Y-%m-%d)"); 二、当月的相关数据写法: 1、今天是当月的第几天:SELECT DAYOFMONTH( NOW( ) ); 1、当函数使用时,即INTERVAL(),为比较函数,如:INTERVAL(10,1,3,5,7); 结果为4; 弄清楚了上面几个重要的日期运算函数,下面再来一个混合的日期运算 。 三、当周的相关数据写法: 1、获取今天是一周第几天或星期几:SELECT WEEKDAY(now());返回的是数字:0为周一,6为周日 注:若你是以时间戳保存的时间字段,那么请用from_unixtime()函数转换为时间格式,如:from_unixtime($timestamp) 四、Mysql中将日期转为时间戳 前三点的方法,讲的都是将日期转为相应时间常量,并没有提到时间戳与时间的转换,这里把它写出来, 1、时间戳转日期,方法是select from_unixtime(1336542121); 结合前面3点,对于时间戳就更能灵活运用了!最后更新于:2013.04.08 |