我有以下在MySQL中正常运行的SQL查询:
SELECT floor(datediff(u.created_at, curdate()) / 1) AS days_ago
我正在努力将其从MySQL转换为PostgreSQL,但到目前为止却失败了……这是我到目前为止的结果:
SELECT floor(DATEDIFF(u.created_at, NOW()) / 1) AS days_ago
这是错误的:
ERROR: function datediff(timestamp without time zone, timestamp with time zone) does not exist
LINE 1: SELECT floor(DATEDIFF(u.created_at, NOW()) / 1) AS days_ago...
如何使该查询正常工作?
分析解答
我认为您的版本将产生一个负数。那是你打算的吗?
无论如何,在Postgres中,您可以取两个日期之差:
SELECT (u.created_at::date - current_date) as days_ago