Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法在MySql上更改日期格式?_Mysql_Sql_Date - Fatal编程技术网

有没有办法在MySql上更改日期格式?

有没有办法在MySql上更改日期格式?,mysql,sql,date,Mysql,Sql,Date,我需要在我的sql数据库中存储一些日期,问题是默认存储是 YYYY-MM-DD 我需要 DD-MM-YYYY 我唯一的解决方案是将日期存储为Varchars(10),它工作得很好,但现在我不能按日期排序查询,我需要从最早的到最新的排序 有人能帮我吗?使用本机函数 SELECT DATE_FORMAT(date_column, '%d-%e-%Y') FROM your_table; 使用本机函数 SELECT DATE_FORMAT(date_column, '%d-%e-%Y') FRO

我需要在我的sql数据库中存储一些日期,问题是默认存储是

YYYY-MM-DD
我需要

DD-MM-YYYY
我唯一的解决方案是将日期存储为Varchars(10),它工作得很好,但现在我不能按日期排序查询,我需要从最早的到最新的排序

有人能帮我吗?

使用本机函数

SELECT DATE_FORMAT(date_column, '%d-%e-%Y') FROM your_table;
使用本机函数

SELECT DATE_FORMAT(date_column, '%d-%e-%Y') FROM your_table;

无法更改MySQL日期或其任何变体(DATETIME、TIMESTAMP和date)的默认日期格式

引用手册:

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'). 尽管MySQL试图以多种格式解释值,但必须始终给出日期 以年-月-日顺序(例如,“98-09-04”),而不是以月-日或年为单位 其他地方常用的日-月-年订单 (例如,“09-04-98”、“04-09-98”)。
考虑@Micheal在其帖子中正确建议的本机函数。

无法更改MySQL日期或其任何变体的默认日期格式-日期时间、时间戳和日期

引用手册:

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'). 尽管MySQL试图以多种格式解释值,但必须始终给出日期 以年-月-日顺序(例如,“98-09-04”),而不是以月-日或年为单位 其他地方常用的日-月-年订单 (例如,“09-04-98”、“04-09-98”)。
考虑一下@Micheal在其帖子中正确建议的本机函数。

为什么不存储时间戳,然后相应地进行更改???你可以在需要显示的地方查看列表,但不应改变你存储数据的方式。如果它是datetime数据,请将其存储在适当的datetime类型中。数据库知道如何对日期时间值进行适当排序。然后,当您想向某人显示这些值时,在那里进行格式化。数据库日期时间错误的最大来源是当人们试图使用字符串来表示它们时。Upvoted@swapnesh,但我想澄清一下这一点。看,在MySQL中不存储日期:存储事实。事实上,在某个特定的时间点发生的某些事件不会随着您希望将该时间点存储为“YYYY-MM-DD”或“DD-MM-YYYY”,甚至“MM-DD-YYYY”而改变,上帝保佑发明这种格式的人。所有这些都是关于如何表示此事实的详细信息,100次中有99次您不应该在数据库中存储表示相关的详细信息(不是事实!)。对于显示部分,可以,但是我的用户不会输入YY-MM-DD,所以我如何存储DD-MM-YYYY日期,并将其转换为YY-MM-DD格式?可以。在输入时,尽早转换为日期时间值(而不是字符串)。在输出时,尽可能晚地将datetimes转换为字符串。通常,最好用编写UI所用的任何应用程序语言来完成这两项工作。为什么不存储时间戳,然后进行相应的更改???你可以在需要显示的地方查看列表,但不应改变你存储数据的方式。如果它是datetime数据,请将其存储在适当的datetime类型中。数据库知道如何对日期时间值进行适当排序。然后,当您想向某人显示这些值时,在那里进行格式化。数据库日期时间错误的最大来源是当人们试图使用字符串来表示它们时。Upvoted@swapnesh,但我想澄清一下这一点。看,在MySQL中不存储日期:存储事实。事实上,在某个特定的时间点发生的某些事件不会随着您希望将该时间点存储为“YYYY-MM-DD”或“DD-MM-YYYY”,甚至“MM-DD-YYYY”而改变,上帝保佑发明这种格式的人。所有这些都是关于如何表示此事实的详细信息,100次中有99次您不应该在数据库中存储表示相关的详细信息(不是事实!)。对于显示部分,可以,但是我的用户不会输入YY-MM-DD,所以我如何存储DD-MM-YYYY日期,并将其转换为YY-MM-DD格式?可以。在输入时,尽早转换为日期时间值(而不是字符串)。在输出时,尽可能晚地将datetimes转换为字符串。通常最好用编写UI所用的任何应用程序语言来完成这两项工作。