基于引用列的列值

时间:2014-02-23 15:21:31

标签: sql postgresql

我有一个表有一个名为last_update的列,另一个名为next_update,其中两个都是'date'格式。现在的问题是如何使next_update中的日期值等于last_update中的日期值加上相同ID的设计周期。我计划编写类似

的程序
value of column 'next_update' = value of column 'last_update' + designed period for the same ID

我怎么能用sql语言为postgresql编程呢。感谢任何帮助,并提前感谢您。

5 个答案:

答案 0 :(得分:1)

您可以这样做:

UPDATE myTable 
SET next_update = last_update + someInteger

请参阅:http://wiki.postgresql.org/wiki/Working_with_Dates_and_Times_in_PostgreSQL#Because_the_difference_of_two_DATES_is_an_INTEGER.2C_this_difference_may_be_added.2C_subtracted.2C_divided.2C_multiplied.2C_or_even_modulo_.28.25.29

要为特定行执行此操作,您只需执行以下操作:

UPDATE myTable 
SET next_update = last_update + someInteger
WHERE id = desiredID

答案 1 :(得分:0)

这是你的意思吗?

update t
    set next_update = last_update + interval 'x' day;

或者如果你想要一些变量:

update t
    set new_update = last_update + interval '1' day * x;

其中“x”可以是另一列或常量或case表达式。

答案 2 :(得分:0)

也许这样的事情可以吗?

update table1 set next_update = last_update + interval '1' day

答案 3 :(得分:0)

如果您要更新值为next_update + n天的last_update列,请在以下查询中将值“n”替换为“1”。

UPDATE A
SET  next_update = last_update + INTERVAL '1' day;

答案 4 :(得分:0)

取决于您想要添加多少时间,例如:+ interval'1小时' 您可以在http://www.postgresql.org/docs/9.1/static/functions-datetime.html

找到更多信息