2012-10-01 294 views
0

我需要存储一些日期在我的SQL数据库,问题是默认存储是有没有办法在MySql上更改日期格式?

YYYY-MM-DD 

,我需要

DD-MM-YYYY 

我唯一的解决办法是存储日期VARCHAR处理(10)它的工作很好,但现在我不能在DATE订购我的查询,并且我需要从最旧到最新订购​​它们...

任何人都可以帮我吗?

+1

为什么不存储在时间戳,然后相应地改变?你可以在http://www.w3schools.com/sql/func_date_format.asp查看清单 – swapnesh

+3

你需要的*显示*的目的不应该改变你*存储*数据的方式。如果其日期时间数据存储在适当的日期时间类型中。数据库知道如何适当地对日期时间值进行排序。然后,当你想向别人展示这些值时,你可以在那里格式化*。数据库日期时间错误的最大来源是人们尝试使用字符串来表示它们。 –

+1

Upvoted @swapnesh,但想澄清一点。看,你不在MySQL中存储日期:你存储_facts_。事实上,某个事件发生在特定的时间点并不会改变,只要您希望将此时间点存储为“YYYY-MM-DD”或“DD-MM-YYYY”,或者甚至是“MM-DD- YYYY',上帝保佑那些发明这种格式的人。这是关于如何表示这一事实的所有细节,并且在您的数据库中99次不应存储表示相关细节(不是事实!)。 – raina77ow

回答

2

没有办法更改默认的日期格式为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在他的岗位建议。

相关问题