当我创建一个表并在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