Dav*_*nes 4 sql postgresql datetime
我有一个包含四列 ID、中断名称、开始时间、完成时间的表。
开始时间和结束时间的数据集是没有时区的时间。
我想添加另一个名为 Duration 的列,并希望它减去时间开始时完成的时间。这样,在持续时间列中输入的数据的每一行都会显示中断的时间。
减去两个时间戳将返回interval它们之间的差异,这应该符合您的要求:
SELECT *, time_finished - time_Started AS duration
FROM mytable
Run Code Online (Sandbox Code Playgroud)
正如@Mureinik 所指出的,您可以对查询中的时间戳进行数学计算。要修复您的表,您需要向表中添加持续时间(或您喜欢的任何名称)列,并使用 UPDATE 查询填充该列。
首先,我将创建一个沙箱表来测试这些更改。当您对结果感到满意时,您可以修改实际的表。
复制从mytable到 的所有内容test
CREATE TABLE test
AS
SELECT *
FROM mytable
Run Code Online (Sandbox Code Playgroud)
添加数据类型为间隔的新列
ALTER TABLE test
ADD COLUMN duration interval
Run Code Online (Sandbox Code Playgroud)
填充新列
UPDATE test
SET duration = time_finished - time_started
Run Code Online (Sandbox Code Playgroud)
对表中的结果感到满意后test,请在实时表上运行相同的命令。
| 归档时间: |
|
| 查看次数: |
6795 次 |
| 最近记录: |