Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.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
SQL记录是否在日期范围内?_Sql_Sql Server_Date_Range - Fatal编程技术网

SQL记录是否在日期范围内?

SQL记录是否在日期范围内?,sql,sql-server,date,range,Sql,Sql Server,Date,Range,我的家庭作业需要sql查询。 查询必须返回正确的结果 我问错了: SELECT RZ.* FROM TBL_HOTEL_RESERVATION AS RZ INNER JOIN TBL_HOTEL_ROOM AS ROOM ON ROOM.ROOM_CODE <> RZ.ROOM_CODE WHERE (CONVERT(DATETIME,LEFT(RZ.ARRIVAL_TIME,12)) <= CONVERT(DATETIME,LEFT('3/12/2013',12)) A

我的家庭作业需要sql查询。 查询必须返回正确的结果

我问错了:

SELECT RZ.* FROM TBL_HOTEL_RESERVATION AS RZ
INNER JOIN TBL_HOTEL_ROOM AS ROOM
ON ROOM.ROOM_CODE <> RZ.ROOM_CODE 
WHERE 
(CONVERT(DATETIME,LEFT(RZ.ARRIVAL_TIME,12)) <= CONVERT(DATETIME,LEFT('3/12/2013',12))
AND
CONVERT(DATETIME,LEFT(RZ.LEAVE_TIME,12)) > CONVERT(DATETIME,LEFT('3/12/2013',12)))
OR
(CONVERT(DATETIME,LEFT(RZ.ARRIVAL_TIME,12)) < CONVERT(DATETIME,LEFT('3/14/2013',12))
AND
CONVERT(DATETIME,LEFT(RZ.LEAVE_TIME,12)) >= CONVERT(DATETIME,LEFT('3/14/2013',12)))

我正在尝试这样做,如果房间在这些日期范围内有预订,则不应进行第二次预订。

您使用的功能太多了。日期范围查询非常简单

where YourDateField >= TheStartofYourDateRange
and YourDateField < TheDayAfterTheEndOfYourDateRange
where YourDateField>=日期范围的开始
您的日期字段<指定日期范围后的日期

在完成作业时,请记住这一点。

您尝试过这个方法吗?希望它能有所帮助

WHERE 
CONVERT(DATETIME(RZ.ARRIVAL_TIME)) >= CONVERT(DATETIME('3/12/2013'))
AND
CONVERT(DATETIME(RZ.LEAVE_TIME)) <= CONVERT(DATETIME('3/14/2013'))
在哪里
转换(日期时间(RZ.到达时间))>=转换(日期时间('3/12/2013'))
及

转换(DATETIME(RZ.leve_TIME))为什么使用
CONVERT(DATETIME,LEFT('3/12/2013',12))
而不是
CONVERT(DATETIME,'3/12/2013')
?我在搜索“CONVERT to DATETIME for sql”时发现了该代码,但
CONVERT(DATETIME,LEFT('3/12/2013',12))
CONVERT(DATETIME,'3/12/2013')
相同。您可能不需要和这些
(CONVERT(DATETIME,LEFT(RZ.ARRIVAL\u TIME,12))
…我认为如果您编写列的格式和类型
RZ.LEFT\u TIME
,您的代码可以简化。我这样做了,但我的问题仍然存在,但我有两个日期范围?
WHERE 
CONVERT(DATETIME(RZ.ARRIVAL_TIME)) >= CONVERT(DATETIME('3/12/2013'))
AND
CONVERT(DATETIME(RZ.LEAVE_TIME)) <= CONVERT(DATETIME('3/14/2013'))