我有这个SQL Query的地方。我想知道我是否可以限制用户只能选择2天的日期范围。意思是他们不能选择1个月或1周或超过2天的空间数据范围。
WHERE
To_Date(to_char(B.time_stamp, 'DD-MON-YYYY')) >= To_Date('?DATE1::?','MM/DD/YYYY')
and To_Date(to_char(B.rest_date, 'DD-MON-YYYY')) <= To_Date('?DATE2::?','MM/DD/YYYY')
答案 0 :(得分:0)
如果我理解你的问题,你只是问如何限制两个日期,使它们在彼此的2天之内。 Oracle中的日期数学非常简单(我猜你正在使用的数据库):
WHERE ABS(Date1 - Date2) <= 2
您无需使用to_char或其他任何内容进行转换,因为它在内部存储为实际日期。您可以使用相同类型的逻辑来确保它少于16小时:
WHERE ABS(Date1 - Date2) <= 16/24
只要你记得适当调整你的单位。
请注意,在这种情况下,2天表示48小时。如果你的意思是它必须是2个实际日期,那么它会略有不同。