date_sub ok用mysql,ko用postgresql

Ber*_*aud 6 sql postgresql

这个与mySQL一起使用的查询不适用于Postgresql:

select ... from ... where (id = ... and ( h > date_sub(now(), INTERVAL 30 MINUTE)))  
Run Code Online (Sandbox Code Playgroud)

错误是:

Query failed: ERREUR:  erreur de syntaxe sur ou près de « 30 »  
Run Code Online (Sandbox Code Playgroud)

有任何想法吗 ?

Joa*_*son 16

DATE_SUB 是PostgreSQL中不存在的MySQL函数.

你可以(例如)使用;

NOW() - '30 MINUTES'::INTERVAL
Run Code Online (Sandbox Code Playgroud)

...要么...

NOW() - INTERVAL '30' MINUTE
Run Code Online (Sandbox Code Playgroud)

...要么...

NOW() - INTERVAL '30 MINUTES'
Run Code Online (Sandbox Code Playgroud)

作为替代品.

一个SQLfiddle,全部用于测试3.

  • 在MySQL中不需要DATE_SUB,NOW() - INTERVAL'30'MINUTE也适用于MySQL. (2认同)