2008-10-12 35 views

回答

37

http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_now

「NOW()返回一個固定的時間表示將在哪個語句開始執行的時間。(在一個存儲程序或觸發器,NOW()返回的時間,在該例程或觸發語句開始執行)。這與SYSDATE()的行爲不同,它返回從MySQL 5.0.13開始執行的確切時間。「

+2

SQL是面向SET的,這意味着更新適用於整個集合或根本不適用。 NOW()和SYSDATE()之間的區別在這裏不重要。在這兩種情況下,'datetime'字段都將更新爲單個/不同的值。 – 2010-05-03 09:07:36

1

他們應該有同樣的時間,更新應該是原子的,這意味着無論需要多長時間執行,動作應該發生,好像所有的事情都是在同一時間完成的。

如果您遇到不同的行爲,是時候更換另一個DBMS了。

+0

沒有遇到什麼,只是在我繼續之前確認,並假設它會。 – 2008-10-12 07:14:45

3

如果最終結果對您很重要 - 首先進行測試,僅僅因爲它應該按照記錄來工作,並不意味着它會。如果有疑問,測試!

+13

是的,測試很重要(+1),但不應該是決定的唯一基礎。如果測試行爲實際上未被記錄,它將來可能會改變。我們應該僅僅依賴記錄的行爲,但要對其進行測試以確保其按照記錄進行工作。 – 2010-05-03 09:16:28

0

SQLite的答案的情況下,別人一直在尋找它

update TABLE set mydatetime = datetime('now'); 

+0

在`mysql`中不起作用 – Belter 2017-12-05 07:55:44

1

分配NOW()給一個變量,然後更新變量的日期時間:

update_date_time=now() 

現在更新這樣

UPDATE table SET datetime =update_date_time; 

更正語法,按照您的要求

相關問題