pgsql 如何求时间差
时间: 2023-03-12 10:09:30 浏览: 462
PostgreSQL 用内置函数 EXTRACT 来求时间差,例如:EXTRACT (EPOCH FROM TIMESTAMP '2021-02-02 09:00:00' - TIMESTAMP '2021-02-01 10:00:00')/3600,将返回23,即两个时间戳相差23小时。
相关问题
pgsql 时间差转数字
您可以使用 PostgreSQL 内置的 `EXTRACT` 函数和 `DATE_PART` 函数来计算时间差并将其转换为数字。
以下是一个示例查询,它计算两个时间戳之间的秒数差:
```
SELECT EXTRACT(EPOCH FROM (timestamp_2 - timestamp_1))::INTEGER AS time_diff
FROM your_table;
```
其中,`timestamp_1` 和 `timestamp_2` 是您要计算时间差的两个时间戳。查询将返回一个整数,表示两个时间戳之间的秒数差。
如果您想计算其他时间单位的差异(例如分钟、小时或天数),则可以使用 `DATE_PART` 函数。以下是一个示例查询,它计算两个日期之间的天数差:
```
SELECT DATE_PART('day', date_2 - date_1)::INTEGER AS day_diff
FROM your_table;
```
其中,`date_1` 和 `date_2` 是您要计算日期差的两个日期。查询将返回一个整数,表示两个日期之间的天数差。您可以将 `'day'` 参数替换为其他时间单位,例如 `'hour'`、`'minute'` 或 `'second'`,以计算其他时间单位的差异。
pgsql查询两条记录的时间差
在 PostgreSQL 中,可以使用 `EXTRACT` 和 `AGE` 函数来计算两条记录的时间差。
假设你有一个名为 `mytable` 的表,其中包含两个时间戳列 `start_time` 和 `end_time`,你可以使用以下查询来计算两条记录的时间差:
```sql
SELECT EXTRACT(epoch FROM (end_time - start_time)) AS time_diff_seconds
FROM mytable
WHERE id = 1;
SELECT AGE(end_time, start_time) AS time_diff
FROM mytable
WHERE id = 1;
```
第一条查询使用 `EXTRACT` 函数来计算两个时间戳之间的秒数差异,其中 `epoch` 参数将结果转换为秒。第二条查询使用 `AGE` 函数来计算两个时间戳之间的时间差异,结果将以 `年-月-日 时:分:秒` 的格式显示。
你需要根据自己的具体情况选择适合的函数来计算时间差。