如何更改数据库的MySQL日期格式?

时间:2010-10-29 14:39:05

标签: mysql date formatting filemaker

我们正在使用带有FileMaker的MySQL数据库。看来,当FileMaker读取MySQL表时,它只接受格式为m / d / y的日期。

有什么方法可以让MySQL数据库将默认格式改为m / d / y而不是YYYY-MM-DD?

我知道我可以在单个SELECT查询中使用DATE_FORMAT()函数,但我想知道是否可以更改默认格式。

6 个答案:

答案 0 :(得分:10)

编辑1

再多读一遍,我发现你可以change the format for an specific field,但不推荐。

you cannot change the storage format

您可以设置ALLOW_INVALID_DATES并使用您希望的格式保存日期,但我真的不建议这样做。

如果您的字段未编入索引,那么在您执行选择时调用DATE_FORMAT()时没有问题,唯一的问题是如果您需要为该字段进行选择,在这种情况下索引将不会被使用因为你正在调用这个函数。

答案 1 :(得分:5)

诀窍不是改变MySQL中的格式(它不是以字符串形式存储),而是在查询时指定所需的格式。

这可以通过以下方式实现:

SELECT date_format(mydatefield,'%m/%d/%Y') as mydatefield FROM mytable

官方MySQL手册就在这里:http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-format

顺便说一句,偏离主题,但我觉得我应该提一下:我总是建议不要使用mm / dd / yyyy作为日期格式 - 你会混淆来自美国以外的人;世界上几乎所有其他国家通常都会使用dd / mm / yyyy。但这两种格式都含糊不清 - 当你说“12/05/2010”时,你的日期是什么意思?可能与我不同,但实际上不可能知道你想要的方向。

如果您打算将日期用于显示目的,我总是将月份显示为单词或缩写,因为这样可以消除任何歧义。出于输入目的,请使用日历控件以避免任何可能的混淆。

答案 2 :(得分:1)

我认为你不能,见Changing MySQL's Date Format

有一些名为date_formatdatetime_format的系统变量看起来很有希望,但是如果你试图设置它们,你就会收到错误,documentation说它们“未使用” ”。

答案 3 :(得分:0)

我使用WAMP安装,通常只创建一个列INT(10),然后像这样存储我的日期:

UPDATE  `test` SET  `dateandtime` = DATE_FORMAT( NOW(),  '%y%m%d%H%i' ) WHERE `id` =1234;

这会将2013-11-22 12:45:09存储为1322111245之类的数字。是的,它可能被认为是“不合适的”,但我不在乎。它可以工作,我可以轻松地在客户端上进行排序和格式化。

如果您希望运行任何其他日期函数,这显然不会被建议,但对我来说,我通常只想知道记录的最后更新并按日期对结果集进行排序。

答案 4 :(得分:0)

SELECT COUNT(field_name) AS count_it FROM table_name WHERE DATE_FORMAT(date_field,'%Y-%m-%d') = DATE_FORMAT(CURDATE(), '%Y-%m-%d')-- to count records for today.

答案 5 :(得分:0)

SELECT DATE_FORMAT(NAME_COLUMN, "%d/%l/%Y %H:%i:%s") AS 'NAME'