PostgreSQL从日期字段PSQL中精确减去一年

lac*_*der 4 postgresql psql

我试图精确地做一年SQL减法,但是PSQL中的语法不起作用。在我的情况下,日期是用2位数的年份输入的,因此它们的生日都在1900年之前。

UPDATE patients SET birthday = dateadd(year, 100, getdate(birthday)
Run Code Online (Sandbox Code Playgroud)

抛出:

ERROR:  syntax error at or near "table"
LINE 1: UPDATE table SET datefield = DATE_ADD(datefield, INTERVAL 1 ...
Run Code Online (Sandbox Code Playgroud)

lac*_*der 5

这在PostgreSQL中可以通过简单地使用INTERVAL并传入一串增量值和类型(秒,分钟,小时,天,月,年)等来工作。

UPDATE patients SET birthday = birthday + INTERVAL '1900 years';
Run Code Online (Sandbox Code Playgroud)

在这里找到想法https://www.postgresql.org/docs/9.1/static/functions-datetime.html