Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL检查月份是否介于两个日期之间 从bookingpoleorder中选择*,其中(( 年(sDate)=$年和月(sDate)=$月 )或( 年(eDate)=$年和月(eDate)=$月 ))_Mysql - Fatal编程技术网

Mysql SQL检查月份是否介于两个日期之间 从bookingpoleorder中选择*,其中(( 年(sDate)=$年和月(sDate)=$月 )或( 年(eDate)=$年和月(eDate)=$月 ))

Mysql SQL检查月份是否介于两个日期之间 从bookingpoleorder中选择*,其中(( 年(sDate)=$年和月(sDate)=$月 )或( 年(eDate)=$年和月(eDate)=$月 )),mysql,Mysql,我有一张有两个日期的预订表,例如开始日期和结束日期。所以我需要得到一个月所有预订的报告。下面是我使用的查询。但是,如果日期是确定的,我就不会在日期之间 2018-09-12至2018-12-12预订仅在第9个月和 第12个月未进入月与月之间运算符选择给定范围内的值。这些值可以是数字、文本或日期 SELECT * FROM bookingpoleorder WHERE sDate BETWEEN '2018-09-12' AND '2018-12-12' OR eDate BETWEEN '2

我有一张有两个日期的预订表,例如开始日期和结束日期。所以我需要得到一个月所有预订的报告。下面是我使用的查询。但是,如果日期是确定的,我就不会在日期之间
2018-09-12
2018-12-12
预订仅在第9个月和
第12个月未进入月与月之间运算符选择给定范围内的值。这些值可以是数字、文本或日期

SELECT * FROM bookingpoleorder 
WHERE sDate BETWEEN '2018-09-12' AND '2018-12-12' 
OR eDate BETWEEN '2018-09-12' AND '2018-12-12' 
或者在两者之间使用

SELECT * 
FROM bookingpoleorder
WHERE date_to_compare BETWEEN  sDate AND eDate

这完全取决于您拥有的数据库。如果您使用的是
mysql
,请尝试

SELECT * FROM bookingpoleorder WHERE DATE_FORMAT(date,'%Y')=$year AND DATE_FORMAT(date,'%m') BETWEEN $month1 AND $month2

如果
sdate
是开始日期,
edate
是结束日期,您将提供
$year
作为年份,
$month
作为月份,然后尝试:

SELECT * FROM bookingpoleorder WHERE DATE_FORMAT(sdate,'%Y') = $year AND DATE_FORMAT(edate,'%Y') = $year AND DATE_FORMAT(sdate,'%m') = $month AND DATE_FORMAT(edate,'%m') = $month

您是否考虑过使用“我需要每月获取”,因此我将只向查询提供月份,然后查询需要检查开始日期和结束日期之间的日期,如果它包含将检索预订的月份,则最好提供一个示例结果您可能还需要一个
ORDER BY
以有序方式获取结果哦,是的如果date_to_compare是数据库中用于比较sDate和EDATE的字段,那么这就很好了。虽然这可能回答了作者的问题,但它缺少一些解释词和/或文档链接。如果没有一些短语,原始代码片段就没有多大帮助。你也会发现这很有帮助。请编辑您的答案-我不会提供$month1和$month2这两个月,而只提供月份和年份。如果提供的月份和年份介于这两个日期之间,则表中有两列,分别为sdate和edate。我需要选择那个预订。我希望我正确地解释了我需要什么
SELECT * FROM bookingpoleorder WHERE DATE_FORMAT(sdate,'%Y') = $year AND DATE_FORMAT(edate,'%Y') = $year AND DATE_FORMAT(sdate,'%m') = $month AND DATE_FORMAT(edate,'%m') = $month