當我創建一個表並在mysql中創建一個類型爲date的字段時,它將存儲日期,例如0000-00-00。是否可以將格式更改爲'd-m-Y'?MySQL日期格式
回答
轉到MySQL Reference - 10.5. Data Type Storage Requirements
搜索:對日期和時間類型存儲需求
,如果你選擇一個日期列的日期在內部存儲爲A three-byte integer packed as DD + MM×32 + YYYY×16×32
但是,顯示,它必須顯示在一些的方式,所以它co mes出爲0000-00-00。它是而不是存儲爲具有該特定格式的字符(10)。
如果爲了顯示而需要查看特定格式,則可以使用Date_Format()以特定格式將其轉換爲VARCHAR。但是,請記住,如果您在編程工具中使用該查詢,則這是而不是您想要執行的操作。你需要原始的日期值,出於顯示的目的,在你使用的任何編程環境中都會有類似的格式化函數。
正如你可以從DATE_FORMAT參考看看,你會希望使用'%d-%m-%Y'
,例如
SELECT col1, col2, DATE_FORMAT(datecolumn, '%d-%m-%Y') AS datecolumn, more1...
FROM sometable
....
不,它不可能保持它作爲日期字段。我建議你保持這種格式 - 所以你可以使用所有的MySQL日期函數 - 並且只有當你把它顯示給用戶時才能改變它。
您可以用查詢做應用端,或直接:
SELECT DATE_FORMAT(date_field, "%d-%m-%Y") FROM ...
不,這是不可能的。但是您可以使用DATE_FORMAT來選擇這種方式。
SELECT Date_format(mydatefield, '%d-%m-%Y')
FROM table
Ouh,你也不能使用日期函數(提取日期,月份,間隔等)。我知道了。感謝所有 – 2011-03-20 09:59:30
爲此,您可以使用SQL
SELECT DATE_FORMAT(date_field, "%d-%m-%Y") FROM ...
或者,如果你使用的PHP也可以達到同樣的結果:
echo date('d-m-Y', $originalDate); //You will get something like 09-08-2013 (Aug 8th, 2013)
echo date('j-n-y', $originalDate); //You will get something like 9-8-13 (Aug 8th, 2013)
- 1. MySQL日期格式
- 2. MySQL日期格式
- 3. Mysql日期格式
- 4. 轉換日期到MySQL日期格式
- 5. MySQL的格式化日期
- 6. HTML5和MySQL日期格式
- 7. PHP和MYSQL日期格式
- 8. 格式化MySQL日期
- 9. MySQL的UTC日期格式
- 10. 更改格式日期MySql
- 11. MYSQL的日期格式
- 12. MySQL - 日期列格式
- 13. Mysql Unix-Timestamp日期格式
- 14. MySQL日期格式化
- 15. 更改MYSQL日期格式
- 16. mysql中的日期格式?
- 17. Mysql:更改日期格式
- 18. mysql更改日期格式
- 19. MySQL中的格式日期
- 20. Excel格式日期爲MySQL
- 21. 日期格式.NET到mysql
- 22. jquery datepicker mysql日期格式
- 23. 格式日期在MySQL
- 24. MySQL日期格式化JavaScript
- 25. Twitter日期格式爲Mysql
- 26. MySQL日期格式更改
- 27. 將日期格式化爲mysql格式
- 28. 格式表與日期格式的varchar日期mysql
- 29. MySQl日期格式更新日期格式不同的Varchar
- 30. centos mysql日誌文件日期格式
我有另一種方法,我可以通過strtotime()存儲int類型的時間戳,然後它可以與date()函數一起使用。我不確定這是不錯的方法。 – 2011-03-20 09:51:10
是的,但一個int時間戳是完全不可讀的。 mysql的默認格式可以讓你理解日期而不處理它。如果你使用INTs – 2011-03-20 09:52:47