mysql查询SQL语句的今天,昨天,将近7天,将近30天,这个月,和上个月。
据说有一篇文章表。时间添加文章的存储物品的add_time领域,这是int(5)。现在,我们需要查询今天添加的文章总数,并根据从大到小的时间排序它们。
复制代码代码如下所示:
SELECT * FROM `第`哪里date_format(from_unixtime(` add_time `),% y %M - %d)= date_format(现在的(),% y %M - %d);
或:
复制代码代码如下所示:
SELECT * FROM `第`哪里to_days(date_format(from_unixtime(` add_time `),% y %M - %dto_days(现在)=());
如果上表中的add_time场存储类型是datetime类型或时间戳类型,查询语句也可以写成如下:
查询今天的信息记录:
复制代码代码如下所示:
SELECT * FROM `第`哪里to_days(` add_time `)= to_days(现在());
查询昨天的信息记录:
复制代码代码如下所示:
SELECT * FROM `第`哪里(to_days)(现在)- to_days(` add_time `)< = 1;
近7天的信息记录:
复制代码代码如下所示:
SELECT * FROM `第`哪里date_sub(CURDATE),间隔(7天)< =日期(` add_time `);
近30天的信息记录:
复制代码代码如下所示:
SELECT * FROM `第`哪里date_sub(CURDATE),间隔(30天)< =日期(` add_time `);
查询本月的信息记录:
复制代码代码如下所示:
SELECT * FROM `第`哪里date_format(` add_time `,% % m)= date_format(CURDATE(),% %米);
查询上个月的信息记录:
复制代码代码如下所示:
SELECT * FROM `第`哪里period_diff(date_format(现在的(),% % m),date_format(` add_time `,% % m))= 1;
分析上面SQL语句中的一些函数:
(1)to_days
像它的名字一样,它是一个UNIX时间戳,它将特定的日期或时间字符串转换为某一天,例如:
复制代码代码如下所示:
MySQL >选择to_days('2010-11-22 14:39:51);
-------------------------------- + +
| to_days('2010-11-22 14:39:51)|
-------------------------------- + +
734463 | |
-------------------------------- + +
MySQL >选择to_days('2010-11-23 14:39:51);
-------------------------------- + +
| to_days('2010-11-23 14:39:51)|
-------------------------------- + +
734464 | |
-------------------------------- + +
可以在22和23,不同的是,转换后的数量增加了1,查询的大小是比较粗糙的,有时我们可能无法满足查询要求,然后你需要使用细粒度的str_to_date函数的查询方法,下面将分析功能。
提醒:
(1)to_days()不在阳历的出现使用价值(1582),因为失去了约会的时候并没有考虑到日历的改变。所以,函数的结果是不可靠的日期前1582(也许下一步在其他地区年)。
(2)在MySQL中日期和时间型的规则是将日期的两位数年份值四位。所以'1997-10-07'and '97-10-07将被视为相同的日期:
复制代码代码如下所示:
MySQL >选择to_days('1997-10-07),to_days('97-10-07);
> 729669, 729669
(2)str_to_date
这个函数可以完全转换字符串时间,例如:
复制代码代码如下所示:
MySQL >选择str_to_date(2010-11-23 14:39:51
-------------------------------------------------------- + +
| str_to_date(2010-11-23 14:39:51
-------------------------------------------------------- + +
2010-11-23 14:39:51 | |
-------------------------------------------------------- + +
具体案例操作如下:
复制代码代码如下所示:
选择str_to_date(第。` add_time `,% y %M - %:%我:%s)
从第
在str_to_date(第。` add_time `,% y %M - %:%我:%s)> = '2012-06-28 08:00:00和str_to_date(第。` add_time `,% y %M - %,%:%我:%s)