我使用 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
最佳答案
如果您的产品
有一个start_date
和一个end_date
并且您的查询有一个qstart_date
和一个qend_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”。
关于MySql Query-日期范围内的日期范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6589079/