我想添加一個時間戳字段(添加)到用戶(在這種情況下userstest)表,並需要它大致爲現有用戶。現有用戶的日期並不重要,但順序很重要。如何將時間戳更新爲當前時間,減去id字段(秒)?
我曾嘗試以下:
UPDATE userstest SET added = TIMESTAMP(NOW() - id);
然而,許多結果都只是自己設定爲「二零一四年一月三十零日19時03分31秒」(全部相同的值),這不應該是因爲id是唯一的,所以時間也應該是唯一的。
我有2,725條記錄,如果它有任何區別。
我在這裏錯過了什麼導致這個工作不正如我所料?
答:得益於3非常有幫助的人在評論
UPDATE userstest SET added = NOW() - interval id SECOND
好吧,看來這是做正確的方式,但是我原來數學也有一個邏輯的問題爲好,它應該是:
UPDATE userstest SET added = NOW() - interval (3523902 - id) SECOND
否則順序顛倒。 3523902是所有記錄的最高ID。
定義時間間隔:'UPDATE userstest SET added = NOW() - interval id seconds' –
使用間隔而不僅僅是減法。 ^擊敗我。 – nathancahill
SET added = TIMESTAMP(NOW() - id)'??對於第一個人(id = 1),'added = TIMESTAMP(now() - 1)'和最新的人(例如id = 1000),'added = TIMESTAMP(now - 1000)' - 先前的日期給每個新的人!我不得不說這個 - 邏輯完全錯誤! – Rachcha