我的表中有两个 DateTime 列,ArrivalDateTime,DepartureDateTime,其值类似于 '26/11/2012 00:00:00' '28/11/2012 00:00:00' 现在我想从该表中查找所有记录使用 T Sql 在这些日期之间存在一个给定的日期,比如 27/11/2012
问问题
15554 次
3 回答
5
您可以使用BETWEEN
:
SELECT * FROM table
WHERE '2012-11-27' BETWEEN ArrivalDateTime AND DepartureDateTime
于 2012-11-29T01:12:07.317 回答
1
尝试这个。
DECLARE @GivenDate VARCHAR(10)
SET @GivenDate = '27/11/2012'
SELECT * FROM myTable WHERE CONVERT(DATETIME, ArrivalDateTime, 103) < CONVERT(DATETIME, @GivenDate, 103) AND CONVERT(DATETIME, DepartureDateTime, 103) > CONVERT(DATETIME, @GivenDate, 103)
如果您想包括抵达和离开日期。
SELECT * FROM myTable WHERE CONVERT(DATETIME, ArrivalDateTime, 103) <= CONVERT(DATETIME, @GivenDate, 103) AND CONVERT(DATETIME, DepartureDateTime, 103) >= CONVERT(DATETIME, @GivenDate, 103)
如果您只想比较日期而不是时间,那么试试这个。
SELECT * FROM myTable WHERE CONVERT(DATE, ArrivalDateTime, 103) <= CONVERT(DATE, @GivenDate, 103) AND CONVERT(DATE, DepartureDateTime, 103) >= CONVERT(DATE, @GivenDate, 103)
于 2012-11-29T06:24:27.240 回答
0
你可以试试这个:
select * from MYTABLE where ArrivalDateTime < '2012-11-27' and DepartureDateTime > '2012-11-27'
于 2012-11-29T01:14:49.147 回答