从sql中的日期减去10天(日期格式P20221025)



我有P20221025格式的日期。如何在WHERE子句中从日期减去10天来限制数据?我需要日期=P20221025-10天。

在Oracle中,DATE是由7个字节(世纪、世纪年、月、日、小时、分钟和秒(组成的二进制数据类型;它ALWAYS具有这7个组件,并且NEVER以(人类可读(格式存储。

我有P20221025格式的日期。

然后你要么:

  1. 没有日期,可能有字符串;或
  2. 一定要有日期,而且没有格式

如果你确实有日期,那么只需使用减法:

SELECT *
FROM   table_name
WHERE  a_date_column = :your_date_value - 10;

或者,如果你想匹配24小时周期,那么:

SELECT *
FROM   table_name
WHERE  a_date_column >= :your_date_value - 10
AND    a_date_column <  :your_date_value -  9;

如果有字符串,则将其转换为日期:

SELECT *
FROM   table_name
WHERE  a_date_column = TO_DATE(:your_string_value, '"P"YYYYMMDD') - 10;

或者,如果你想匹配24小时周期,那么:

SELECT *
FROM   table_name
WHERE  a_date_column >= TO_DATE(:your_string_value, '"P"YYYYMMDD') - 10
AND    a_date_column <  TO_DATE(:your_string_value, '"P"YYYYMMDD') -  9;

最新更新