[英]Php/Mysql date saved as '0000-00-00'
我有一個Mysql數據庫,我保留客戶訂單的日期。
日期由php函數date('Ym-d')
。 我的數據庫中有兩個記錄的值為'0000-00-00'
。 一個是由澳大利亞的客戶創建的,另一個是來自意大利的客戶創建的。 其他5000個訂單都沒問題。
我的問題是如何產生這樣的日期? 可能是個別瀏覽器設置的東西?
感謝幫助
我能找到的唯一原因是你的客戶輸入了不正確的日期格式或者他輸入了一個空字符串。 請記住,Mysql中的日期格式是yyyy-mm-dd。
這意味着MySQL傳遞了一個無效值,包括根本沒有值。 檢查您的代碼以確保它始終具有該日期的有效值。
我注意到我遇到了同樣的問題,事實證明,插入它時我沒有在我的$ date變量周圍放置單引號,因此它插入了一個null或空白值,顯示為0000-00- 00在數據庫中。 一旦我在insert語句中輸入'$ date'而不是$ date ,該值就會按預期顯示。
檢查此帖子默認日期'0000-00-00 00:00:00'或null 。 它會回答你的問題。 可能,客戶端代碼中的年,月和日變量尚未初始化。
編輯如果不是這樣,那么您recently changed the Date-related column
似乎已將數據庫中recently changed the Date-related column
從VARCHAR or TEXT
更改為DATE
。
在這種情況下, MySql changes
所有NULL
值MySql changes
為'0000-00-00'
。 所以,如果一段時間后,日期不是UI上的必填字段,如果它被傳遞為NULL,那么上面的事情就發生了。
可能是你有純粹編程或過時的mysql
函數的情況。 例如: CURDATE() + 5
將在DB中正確插入日期,但是如果用戶在2016-12-28
上執行此操作,則DB將顯示0000-00-00
。 如果當前日期是2016-12-20,它將正常工作。 絕對正確的函數是CURDATE() + INTERVAL 5 DAY
。 你是在1月初寫的,所以也許你有類似的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.