如何比较 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_a
、checkin_time
中的值是否在 no_later_than
和 no_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]
我的 table way_point
中有 4 个日期时间列。四列是
scheduled_a, checkin_time, no_later_than, no_earlier_than
现在我想看看 scheduled_a
、checkin_time
中的值是否在 no_later_than
和 no_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]