SQL查询数据范围限制

时间:2012-08-15 16:32:11

标签: sql oracle

我有这个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') 

1 个答案:

答案 0 :(得分:0)

如果我理解你的问题,你只是问如何限制两个日期,使它们在彼此的2天之内。 Oracle中的日期数学非常简单(我猜你正在使用的数据库):

WHERE ABS(Date1 - Date2) <= 2

您无需使用to_char或其他任何内容进行转换,因为它在内部存储为实际日期。您可以使用相同类型的逻辑来确保它少于16小时:

WHERE ABS(Date1 - Date2) <= 16/24

只要你记得适当调整你的单位。

请注意,在这种情况下,2天表示48小时。如果你的意思是它必须是2个实际日期,那么它会略有不同。