2017-07-05 94 views
0

我想爲我的日期列添加默認值。默認值應該是GETDATE()。我想這樣做,所以我可以看到創建的行的日期。當我嘗試保存它時,我收到警告:Incorrect default value for date添加日期列的默認值

有人知道我爲什麼會收到警告,我該如何解決?

+0

它看起來像MySQL中的默認值的可能性相比,在規範中允許的限制我插入/更新,但這樣做的工作? (這是另一種類型,想知道它是否也適用於日期)https://stackoverflow.com/a/10603198 –

+0

使用CURRENT_TIMESTAMP而不是getdate() – Juan

+0

GETDATE()不是一個mysql函數NOW()是 – Tik

回答

1

運行此查詢

ALTER TABLE `YourDb.yourtable` 
    CHANGE COLUMN `date` `date` DATETIME DEFAULT CURRENT_TIMESTAMP; 

更改列是OLDVAL的newval和類型 確保,如果你的列名心不是日期適當地改變它

另外,如果你想要一個時間戳更新時行被修改使用

CHANGE COLUMN `date` `date` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 
+0

此方法正在工作。但它也增加了時間。我只是想添加日期(年 - 月 - 日)。如何將其更改爲(年 - 月 - 日) – John

+1

只有mysql允許時間戳和日期時間日期類型的默認時間戳。 您可以通過使用date()函數 (例如)來刪除select查詢中的時間部分。 SELECT DATE(date) FROM'YourDb.yourtable' – Tik