MySql Query-日期范围内的日期范围

标签 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

最佳答案

如果您的产品有一个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/

相关文章:

MySQL 嵌套 SELECT

java - java 中有关 SQL 语法的错误,而查询在 MySQL 中正常工作

sql - 是否可以构建以下 SQL 查询

PHP MYSQL 插入日期语法

java - JodaTime 日期格式问题

java - 将 UTC 时间转换为 Java 中的本地时区

mysql - 如何在 AWS 上备份 MySQL 数据库?

MySQL-python:SELECT 返回 'long' 而不是查询

PHP/MYSQL IP 检查/记录器

php - HTTPS 是否使 POST 数据加密?