【问题标题】:No value is added into the column没有值被添加到列中
【发布时间】:2021-05-31 18:33:43
【问题描述】:

我试图找出 Unix 秒数和添加到现有空列之间的差异,但结果没有添加到列中。由于我是新人,所以我无法弄清楚。

INSERT INTO "Operation"(minutes)
select (departure_unix_seconds - arrival_unix_seconds)/60  As Difference 
from public."Operation";

【问题讨论】:

  • 您想使用 INSERT 创建新记录还是使用 UPDATE 更新当前记录?
  • @FrankHeikens,感谢您的回复。我正在使用 select 执行此差异操作,结果将作为新列添加到现有表中。无论如何都可以,不仅仅是插入。

标签: postgresql datetime unix-timestamp


【解决方案1】:

假设您的表中有一个名为 "minutes" 的列,并且您想要更新该列,语法如下:

update public."Operation"
set minutes = (departure_unix_seconds - arrival_unix_seconds)/60 

但是通常当一个列值依赖于其他列时,最好实现为“生成的列”:

alter table Operation
add column minutes generated always as (departure_unix_seconds - arrival_unix_seconds)/60 stored;

【讨论】:

  • 感谢您的清晰想法。怎么做才能得到分秒的结果,现在只能看到整数格式的分了。
  • @Aravinth 那将是另一个问题,您可以在 stackoverflow 中将其作为一个新问题提出
猜你喜欢
  • 1970-01-01
  • 2021-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-30
  • 1970-01-01
  • 2019-04-07
  • 1970-01-01
相关资源
最近更新 更多