MySQL
MySQL
SELECT TIMESTAMPDIFF(SECOND, start_at, end_at) AS secs,
TIMESTAMPDIFF(MINUTE, start_at, end_at) AS mins,
TIMESTAMPDIFF(DAY, start_at, end_at) AS days
FROM tasks;PostgreSQL
PostgreSQL
SELECT EXTRACT(EPOCH FROM (end_at - start_at))::bigint AS secs,
TRUNC(EXTRACT(EPOCH FROM (end_at - start_at)) / 60) AS mins,
(end_at::date - start_at::date) AS days
FROM tasks;| 单位 | MySQL:SECOND/MINUTE/HOUR/DAY/WEEK/MONTH/QUARTER/YEAR |
|---|---|
| 返回值 | MySQL 返回整数(截断小数部分) |
| PostgreSQL | 无同名函数;epoch 秒差值 + 除法截断,或 PG 15+ date_bin 归桶 |