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