2014-02-23 54 views
0

我有一個表,它有一個名爲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。感謝您的幫助,並提前致謝。

+0

這是如何「設計期」測量,在天? – dursk

+0

@ m1Lb4nKs ya天。 – green

+0

您可以將「天數」(作爲整數)添加到「last_update」日期值中。 – dursk

回答

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 
+0

對於列中的不同行,因爲有時我只想升級特定行,謝謝 – green

+0

請參閱編輯。你將如何確定你想要更新的行? – dursk

+0

通過在Web界面中選擇要更新的項目,非常感謝你! – green

0

這是你的意思嗎?

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

或者,如果你想要的東西變量:

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

其中 「x」 可以是另一列或者常量或case表達。

0

也許這樣的事情會做?

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

如果您想要更新next_update列,其值爲last_update + n天,將'1'在下面的查詢中使用值n。

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