【发布时间】:2013-04-21 16:54:10
【问题描述】:
当我尝试SELECT CAST('01/1/2001' AS DATE) 时,它总是返回NULL(作为我无法使其工作的示例)。我正在尝试 INSERT 以这种格式创建的数据。
如何将这种格式的日期存储在DATE 列中?
请注意,日期永远不会有前缀 0,而月份如果小于 10,则会有前缀。
【问题讨论】:
-
如果您使用 PHP...在查询数据库之前,您能否使用
substr或preg_match将日期格式重新转换为明确的 MySQL 日期格式? -
@SébastienRenauld 我很乐意,我只是不知道怎么做。 PHP 抓取数据并将其存储在 MySQL 中。
-
请不要以这样的格式存储日期。你可能认为
10/12/2013是 10 月 12 日,但对我来说是 12 月 10 日。它会引起人与人之间的混淆,更重要的是计算机无法猜测您的意思。在存储日期时始终使用yyyy-mm-dd以确保它是明确的。随意以您喜欢的任何本地化格式(或者最好是用户喜欢的格式)将它们呈现给用户,但在您的程序中,您应该始终坚持使用yyyy-mm-dd或 datetime 对象。 -
@Spudley 我无法控制数据源。
-
@JoeCoderGuy - 数据源不受您的控制,但一旦进入程序就将其转换为明确的格式。正如我所说:接受用户首选格式的输入,但在内部使用合理的格式。
标签: php mysql string date date-format