【问题标题】:SQL query to delete records when the difference between two dates is greater than a certain value当两个日期之间的差值大于某个值时删除记录的 SQL 查询
【发布时间】:2021-04-07 07:38:34
【问题描述】:

当我的表的 SYSDATE 和 TIMESTAMP (6) 字段之间的差异大于 10 天时,我想删除记录。我创建了以下查询:

select (SYSDATE - myDate) as difference from myTable where difference > 10;

但我收到以下错误:

00904. 00000 -  "%s: invalid identifier"

我是否正确地创建了查询?

【问题讨论】:

    标签: sql oracle


    【解决方案1】:

    我是否正确地创建了查询?

    不,您不能在同一语句的过滤条件中引用 SELECT 子句中的别名。

    此外,当您从DATE 中减去TIMESTAMP 时,您将得到INTERVAL 数据类型的结果;所以你需要比较它而不是NUMBER(如果你比较DATE - DATE,这将是结果)。

    你想要:

    SELECT SYSDATE - myDate as difference
    FROM   myTable
    WHERE  SYSDATE - myDate > INTERVAL '10' DAY;
    

    db小提琴here

    【讨论】:

      猜你喜欢
      • 2021-07-03
      • 2014-02-11
      • 2017-05-02
      • 1970-01-01
      • 2021-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多