如何比较 SQL 服务器中 4 个日期时间列之间的日期时间范围

How to compare datetime range between 4 datetime columns in SQL Server

我的 table way_point 中有 4 个日期时间列。四列是

scheduled_a, checkin_time, no_later_than, no_earlier_than

现在我想看看 scheduled_acheckin_time 中的值是否在 no_later_thanno_earlier_than 列的范围内。

这是我编写的代码,但出现此错误:

An expression of non-boolean type specified in a context where a condition is expected, near 'and'.

代码:

select 
    customer_id, position 
from 
    way_points 
where 
    position = 2 
    and [scheduled_a] and [checkin_time] between [no_later_than] and [no_earlier_Than]

Position 是我必须在 where 中用作条件的另一列。但大多数情况下,我都停留在比较日期时间列上。

知道我哪里可能错了吗?谢谢。

你快到了。你需要把它分成两个不同的条件。不能说 no_later_than 或 no_earlier_than 哪个更大。在 between 之后,第一个参数需要是较小的。例如,如果 no_later_than = '2016-02-22'no_earlier_than = '2016-02-23'no_later_than 是较小的参数。

select customer_id,position 
from way_points where position=2 
and [scheduled_a] between no_later_than and [no_earlier_than]
and [checkin_time] between no_later_than and [no_earlier_than]