【发布时间】:2018-10-09 17:32:22
【问题描述】:
我尝试准备很多我在 stackoverflow 上找到并传播到互联网上的日期比较,但我无法找到解决方案。
我有下表(行程):
VehicleID DriverID xID CheckIn CheckOut DateHour
462 257 7 1 0 16/12/2017 20:40:00
462 257 7 0 1 19/12/2017 10:05:00
5032 3746 11 1 0 02/10/2017 07:00:00
5032 3746 11 0 1 06/10/2017 17:00:00
当我的公司收到交通罚单时,我想将罚单中的日期与“Trips”表中日期的孔块进行比较,每个块以 CheckIn = 1 开始并以 CheckOut = 1 结束,所以这样我会通过 DriverID 知道哪个司机负责买票。
例如:交通罚单日期和时间是:17/12/2017 08:00:00,而车辆是 id = 462 的车辆,我将在我们系统的一个字段中插入这个日期和时间,以自动查询哪个司机正在驾驶那个时候有车,我们还不会使用票务表。看我的例子,我知道它应该返回 DriverID = 257,但是有很多相同的车辆和不同的司机的旅行.....主要的问题是我如何将票中的日期和时间与范围进行比较旅行的日期,因为我必须考虑 1 次旅行 = 表中的 2 行
很遗憾,我无法更改创建此表的方式,因为我们需要这 2 行,分别是 CheckIn 和 CheckOut。
有什么想法或方向吗?
感谢您的关注
【问题讨论】:
-
你想比较什么?即,您是否要列出与机票具有相同日期的所有行程?票证表中有哪些列?您应该很快就会得到答案,但我们首先需要更多信息编辑:您更有可能试图找到票日期在该范围内的 In/Out 行?
-
每次旅行的 xID 是否唯一?我认为 VehicleID 和 DriverID 可能不是
-
例如:交通罚单日期和时间是:17/12/2017 08:00:00 并且 Vehicle 是 id = 462 的车辆,我将把这个日期和时间插入到我们系统中的字段自动查询当时哪个司机正在驾驶那辆车,我们还不会使用票务表。看我的例子,我知道它应该返回 DriverID = 257,但是有很多相同的车辆和不同的司机的旅行.....主要的问题是我如何将票中的日期和时间与范围进行比较旅行的日期,因为我必须考虑表中的 1 次旅行 = 2 行。
-
好消息。在编辑中将其添加到底部的问题中。它最终会在这里消失。
-
您需要选择较大的日期,然后从这些(子查询)中选择较小的日期。然后你就会知道它是否在范围内。我很快就会发布一些东西。
标签: sql datetime date-comparison