在T-SQL中查找两个日期之间的日期

4

我在我的表中有两个DateTime列,ArrivalDateTime和DepartureDateTime,它们的值类似于'26/11/2012 00:00:00' '28/11/2012 00:00:00'。现在我想使用T Sql查找所有记录,其中给定日期27/11/2012存在于这些日期之间。

3个回答

5
你可以使用 BETWEEN
SELECT * FROM table 
WHERE '2012-11-27' BETWEEN ArrivalDateTime AND DepartureDateTime

请注意,如果日期等于到达时间或离开时间,则之间也返回true。 - Nico

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)

0
你可以尝试这样做:
select * from MYTABLE where ArrivalDateTime < '2012-11-27' and DepartureDateTime > '2012-11-27'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接