首页 > 解决方案 > Postgres 错误:“HOUR”处或附近的语法错误

问题描述

我想将所有记录删除到 Postgress 表中,只留下最近 1 小时创建的记录。我试过这个:

DELETE FROM common.orders WHERE created_at < (NOW(), INTERVAL -1 HOUR);

但我得到错误:

[42601] ERROR: syntax error at or near "HOUR"

你知道我该如何解决这个问题吗?

标签: sqlpostgresql

解决方案


将减号移到INTERVAL子句之外。另外,后面的逗号NOW()也应该去掉,单位的值需要用单引号指定

DELETE FROM common.orders WHERE created_at < NOW() - INTERVAL '1 HOUR';

推荐阅读