【发布时间】:2018-02-23 12:34:14
【问题描述】:
我正在开发一个数据库,其中日期和时间位于两个单独的列中,我的任务是显示两个日期和时间间隔之间的记录。
我进行了以下查询,但这两个日期只给了我从 10 到 12 的记录。我错过了第二天12点到10点的记录。
我怎样才能做到这一点?
SELECT
[guid],
[date],
[time],
[pos]
FROM
SomeTable
WHERE
[guid] = '0Q8m48D_uHua6P0'
AND [date] >= '2017-09-12'
AND time >= '10:00'
AND [date] <= '2017-09-13'
AND time <= '12:00';
【问题讨论】:
-
时间列的数据类型是什么?
-
组合它们 -> 将它们转换为 DateTime -> 使用
BETWEEN。如果您根据日期创建 where 子句,则应将完整的DateTime存储在其自己的列中,因为它更容易处理。 -
我认为最好有一个新的计算列来连接日期和时间,以便您可以过滤新的日期时间列。
-
@sagi 我很想在这个特定的问题中学习铸造,请您举个例子。
-
有关结合日期和时间以获得单个日期的示例,请参阅此问题 - How to combine date and time to datetime2 in SQL Server?
标签: sql-server tsql