id uid exam_id start_time submit_time score 1 1001 9001 2021-09-01 09:01:01 2021-09-01 09:51:01 78 2 1001 9002 2021-09-01 09:01:01 2021-09-01 09:31:00 81 3 1002 9002 2021-09-01 12:01:01 2021-09-01 12:31:01 81 4 1003 9001 2021-09-01 19:01:01 2021-09-01 19:59:01 86 5 1003 9002 2021-09-01 12:01:01 2021-09-01 12:31:51 89 6 1004 9002 2021-09-01 19:01:01 2021-09-01 19:30:01 85 7 1005 9001 2021-09-01 12:01:01 2021-09-01 12:31:02 85 8 1006 9001 2021-09-07 10:01:01 2021-09-07 10:21:01 84 9 1003 9001 2021-09-08 12:01:01 2021-09-08 12:11:01 40 10 1003 9002 2021-09-01 14:01:01 (NULL) (NULL) 11 1005 9001 2021-09-01 14:01:01 (NULL) (NULL) 12 1003 9003 2021-09-08 15:01:01 (NULL) (NULL) sql求时间差
时间: 2023-10-31 15:51:20 浏览: 159
求系统时间差
您可以使用 SQL 中的函数来计算时间差。假设您想要计算 start_time 和 submit_time 之间的时间差,可以使用以下语句:
```sql
SELECT id, uid, exam_id, start_time, submit_time, score,
EXTRACT(EPOCH FROM (submit_time - start_time)) AS time_diff
FROM your_table;
```
这里的 your_table 是包含上述数据的表名。上述语句使用了 EXTRACT 函数来提取两个时间之间的秒数差值,然后将差值作为 time_diff 列返回。
如果您想要以更易读的方式显示时间差,可以使用以下语句:
```sql
SELECT id, uid, exam_id, start_time, submit_time, score,
age(submit_time, start_time) AS time_diff
FROM your_table;
```
这里的 age 函数会返回一个间隔类型的值,表示两个时间之间的年、月、日、小时、分钟和秒的差值。
请注意,上述示例中的时间差计算假设 start_time 和 submit_time 的数据类型为 timestamp 或 timestamptz。如果数据类型不同,请根据实际情况进行调整。
阅读全文