2012-03-09 56 views
1

标准格式是YYYY-MM-DD。我想将其更改为DD-MM-YYYY(巴西格式)。 有什么办法可以在MySQL中完成吗?我不想在PHP或SQL子句中对其进行格式化,因为它会花费很多工作量。而且我必须从我的数据库中多次调用这些日期。我可以在MySQL中更改日期格式吗?

+0

这并不回答你的问题,但考虑'YYYY-MM-DD'格式的优点。这是国际标准(ISO 8601),它是明确的('YYYY-02-01'永远是2月1日,而不是1月2日),日期可以按纯文本排序。 – 2012-03-09 23:40:19

+0

我知道,但这不值得我。谢谢,我的朋友。 – 2012-03-13 14:14:00

+0

@KeithThompson,没有办法可以模棱两可,因为没有YYYY-DD-MM,在巴西这里是DD-MM-YYYY。我也不喜欢这种方式,但尝试参数到客户端和市场... – PSyLoCKe 2013-03-01 11:51:09

回答

3

总之,没有。

基本上为了完成你所要求的事情,你需要在创建表格时指定一个日期格式:http://dev.mysql.com/doc/refman/5.1/en/create-table.html。该文档没有指定任何预格式化列值的方法。

可能有一种通用格式化日期的方法,如mysql数据库配置。 IE默认值。但是我也没有在文档中看到这一点。

+0

我希望这种其他方式,在某种程度上通用的东西格式日期在MySQL数据库配置是真的:b – 2012-03-09 17:48:03

0

我不是一个php人,但MySQL在内部存储数字的日期和时间,而不是字符串。所以当你查询数据库时,你实际回来的是一个数字。数字的显示方式取决于您用来查看数据的任何工具(Web应用程序,sql gui等)。所以任何格式更改都需要在之内发生工具,而不是mySQL。换句话说,你的php代码。

如果您完全无法做到这一点,您可以修改您的个人查询或创建一个VIEW,它会生成所需的格式。然后查询VIEW而不是物理表。但是有一些问题/缺点。字符串排序与日期不同(即数字)。如果您以后需要执行日期数学计算,则可能需要额外的转换代码,因为这些值是字符串,而不是日期对象。

一般来说,格式化和表示的确是前端应用程序的工作,而不是数据库。

1

使用SELECT date_format(dateField, '%d/%m/%Y') as newDateField来检索日期并创建一个PHP函数以在INSERT之前转换yyyy-mm-dd。这是唯一更好的方法。

Vai quedácerto !;