5

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

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

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

4

6 回答 6

10

多读一点,我发现您可以更改特定字段的格式,但不建议这样做。

您无法更改存储格式

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

如果您的字段未编入索引,则DATE_FORMAT()在您进行选择时不会出现问题,唯一的问题是您是否需要为该字段进行选择,在这种情况下,将不会使用索引,因为您正在调用该函数。

于 2010-10-29T14:49:29.873 回答
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。但是这两种格式都是模棱两可的——当你说“2010 年 12 月 5 日”时,你的意思是什么日期?可能与我不同,但实际上不可能知道你想要哪种方式。

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

于 2010-10-29T15:00:20.123 回答
1

我认为您不能,请参阅更改 MySQL 的日期格式

有一些系统变量被调用date_formatdatetime_format看起来很有希望,但如果你尝试设置它们,你会得到一个错误,并且文档说它们是“未使用的”。

于 2010-10-29T14:50:43.673 回答
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. 是的,它可能被认为是“不恰当的”,但我不在乎。它可以工作,我可以轻松地在客户端上按我喜欢的方式进行排序和格式化。

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

于 2013-03-04T23:45:32.683 回答
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.
于 2013-05-16T04:33:09.167 回答
0
SELECT DATE_FORMAT(NAME_COLUMN, "%d/%l/%Y %H:%i:%s") AS 'NAME'
于 2017-05-16T14:32:16.497 回答