我的目标是提前30天。数据以varchar2类型“ 20200630”和“ 20200613”存储。预期结果分别为'20200531'和'20200514'。
我只是从varchar2'20200630'和'20200613'中减去了30,它通过强制转换显示结果,但结果不是预期的,例如'20200600','20200583'等非日期格式。
我能知道如何如下修改我的代码
WITH A AS
(SELECT '20200630' YEARMONTHDAY FROM DUAL
UNION ALL
SELECT '20200613' FROM DUAL)
SELECT YEARMONTHDAY - 30 FROM A;
使用适当的类型存储数据!也就是说,使用date
而不是字符串。
如果您受此格式的数据困扰,请转换为日期: