我需要存储一些日期在我的SQL数据库,问题是默认存储是有没有办法在MySql上更改日期格式?
YYYY-MM-DD
,我需要
DD-MM-YYYY
我唯一的解决办法是存储日期VARCHAR处理(10)它的工作很好,但现在我不能在DATE订购我的查询,并且我需要从最旧到最新订购它们...
任何人都可以帮我吗?
我需要存储一些日期在我的SQL数据库,问题是默认存储是有没有办法在MySql上更改日期格式?
YYYY-MM-DD
,我需要
DD-MM-YYYY
我唯一的解决办法是存储日期VARCHAR处理(10)它的工作很好,但现在我不能在DATE订购我的查询,并且我需要从最旧到最新订购它们...
任何人都可以帮我吗?
没有办法更改默认的日期格式为MySQL的日期或任何其变种 - DATETIME,TIMESTAMP和日期。
引述手册:
Although MySQL tries to interpret values in several formats, dates always must be given in year-month-day order (for example, '98-09-04'), rather than in the month-day-year or day-month-year orders commonly used elsewhere (for example, '09-04-98', '04-09-98').
考虑本地DATE_FORMAT()功能正确的@Micheal在他的岗位建议。
使用原生DATE_FORMAT(date,format)
函数。
SELECT DATE_FORMAT(date_column, '%d-%e-%Y') FROM your_table;
为什么不存储在时间戳,然后相应地改变?你可以在http://www.w3schools.com/sql/func_date_format.asp查看清单 – swapnesh
你需要的*显示*的目的不应该改变你*存储*数据的方式。如果其日期时间数据存储在适当的日期时间类型中。数据库知道如何适当地对日期时间值进行排序。然后,当你想向别人展示这些值时,你可以在那里格式化*。数据库日期时间错误的最大来源是人们尝试使用字符串来表示它们。 –
Upvoted @swapnesh,但想澄清一点。看,你不在MySQL中存储日期:你存储_facts_。事实上,某个事件发生在特定的时间点并不会改变,只要您希望将此时间点存储为“YYYY-MM-DD”或“DD-MM-YYYY”,或者甚至是“MM-DD- YYYY',上帝保佑那些发明这种格式的人。这是关于如何表示这一事实的所有细节,并且在您的数据库中99次不应存储表示相关细节(不是事实!)。 – raina77ow