0

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

1 回答 1

0

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

WHERE ABS(Date1 - Date2) <= 2

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

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

只要您记得适当调整单位。

请注意,在这种情况下,2 天意味着 48 小时。如果你的意思是它必须是 2 天,那么它会略有不同。

于 2012-08-15T16:39:55.163 回答