SQL时间段查询

时间:2010-08-17 12:01:02

标签: php mysql datetime timespan

我需要从表中选择所有在CURDATE()和6周之前都有date_added的行。

请帮助。

5 个答案:

答案 0 :(得分:3)

SELECT  *
FROM    mytable
WHERE   date_added BETWEEN CURDATE() - INTERVAL 6 WEEK AND CURDATE()

答案 1 :(得分:2)

SELECT *
FROM a_table
WHERE date_added BETWEEN DATE_SUB(CURDATE(), INTERVAL 6 WEEK) AND CURDATE()

答案 2 :(得分:1)

SELECT * FROM table_name WHERE TO_DAYS(NOW()) - TO_DAYS(date_added) <= 42

答案 3 :(得分:0)

SELECT * FROM table_name WHERE DATEDIFF(NOW(),date_added)&lt; = 42

答案 4 :(得分:0)

如果您使用一年中的日期

select date_format(date, '%u') from tab     
where (date_format(date, '%u')-date_format(now(), '%u'))>6

如果您使用不同年份的日期

您不必使用另一年的日期。 你可以用

select 
date_format(date, '%u') from tab
where (date_format(date, '%u')-date_format(now(), '%u'))>6
and
date_format(date, '%u') from tab
where (date_format(date, '%Y')-date_format(now(), '%Y'))=0

如果需要,您可以使用join优化查询。我想你知道怎么做