MySql查询 - 日期范围内的日期范围

时间:2011-07-05 21:27:01

标签: mysql sql date

我使用mySql 5和IIS 我有products,其中包含start date字段和end date字段。

我需要运行一个查询,该查询将用户输入的开始日期和结束日期,并输出产品在日期范围内运行的天数。

示例:

Offer1 - July 1 2011 thru July 31 2011
Query - July 1 2011 thru Sept 15 2011

结果= 31

Example:
Offer1 - July 1 2011 thru July 31 2011
Query - July 1 2011 thru July 15 2011

结果= 15

1 个答案:

答案 0 :(得分:4)

如果您的productsstart_dateend_date且您的查询有qstart_dateqend_date,那么我们需要两天之间的天数:

GREATEST(start_date, qstart_date)

LEAST(end_date,qend_date)

。在MySQL中,我认为这看起来像

1 + DATEDIFF ( 'd' , GREATEST(start_date, qstart_date) , LEAST(end_date,qend_date) ) 

你要忽略负数,将其替换为“0”。