((Oracle)30天之前获得

问题描述 投票:0回答:1

我的目标是提前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;
sql oracle date casting
1个回答
0
投票

使用适当的类型存储数据!也就是说,使用date而不是字符串。

如果您受此格式的数据困扰,请转换为日期:

© www.soinside.com 2019 - 2024. All rights reserved.