将日期间隔与SQL进行比较

时间:2014-01-29 20:18:59

标签: mysql sql

我正在开发预订系统。我的SQL请求有问题。 这是我的表:

http://sardoukayoub.com/1.png

这是我的SQL请求:

"SELECT * FROM (SELECT * FROM reservations WHERE (‘2014-01-09' BETWEEN DateDebut AND DateFin ) OR (‘2014-01-24' BETWEEN DateDebut AND DateFin ))AS A WHERE IdProduit = 320"

我对这两个日期的请求结果让我这行: http://sardoukayoub.com/2.png

我想执行我的请求以获得2行。在我的情况下,idreservation = 21和22。

2 个答案:

答案 0 :(得分:1)

似乎你想检查两个时期是否重叠:

SELECT * FROM reservations 
WHERE DateDebut <= '2014-01-29' AND DateFin >= '2014-01-12'
AND IdProduit = 320;

顺便说一句,在标准SQL中有一个OVERLAPS运算符: - )

答案 1 :(得分:0)

日期

'2014-01-09' 
在您的对帐单中选择的

不在IdDeproduit = 320

表格中的DateDebut和DateFin之间

这应该可以正常工作

SELECT * FROM reservations 
WHERE DateDebut <= '2014-01-29' AND DateFin >= '2014-01-12'
AND IdProduit = 320;"