我有P20221025格式的日期。如何在WHERE子句中从日期减去10天来限制数据?我需要日期=P20221025-10天。
在Oracle中,DATE
是由7个字节(世纪、世纪年、月、日、小时、分钟和秒(组成的二进制数据类型;它ALWAYS具有这7个组件,并且NEVER以(人类可读(格式存储。
我有P20221025格式的日期。
然后你要么:
- 没有日期,可能有字符串;或
- 一定要有日期,而且没有格式
如果你确实有日期,那么只需使用减法:
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;