【发布时间】:2019-04-12 18:34:59
【问题描述】:
我正在查询一个 API,我得到一个这样的日期:“2019-04-17T14:04:24.224-04:00”。我想这是一个iso日期。如何在 mysql 数据库中存储年、月和日?我想要以下格式“dd/mm/yyyy”。
【问题讨论】:
-
现在怎么办 - 存储 ISO 日期或存储从 ISO 日期创建的日期表示?到底是哪个数据库?
我正在查询一个 API,我得到一个这样的日期:“2019-04-17T14:04:24.224-04:00”。我想这是一个iso日期。如何在 mysql 数据库中存储年、月和日?我想要以下格式“dd/mm/yyyy”。
【问题讨论】:
格式是一个显示问题,即它是谁在查看数据的函数,所以在你知道谁在查看数据之前不要这样做。在显示点,您应用用户区域设置所需的格式,并经常根据他们的本地时区进行调整。
MySQL 的DATE 列类型与您一样以ISO-8601 format 表示,因此您应该能够在“T”之后插入减去所有内容。
所以要么在插入之前把它去掉就可以了。
在显示时,您可以使用任何PHP date formatting functions 来获得您想要的确切格式。这通常是特定于语言环境的。
您需要确保表示的时间位于正确的时区。在转换为日期之前,请进行任何必要的转换以使其位于正确的区域,否则您可能会发现一天中的几个小时都得到了错误的日期。
通常你应该:
DATE 或 DATETIME 字段中,并根据用户偏好与本地化格式进行转换。【讨论】:
date("d-m-Y", strtotime("2019-04-17T14:04:24.224-04:00"));
就这样吧,
【讨论】:
DATE 列不会处理像 DD-MM-YYYY 这样的模棱两可的值。
DD-MM-YYYY 是一个本地化,它对您的数据库没有任何意义,并且首先不属于数据库。 B)如果/必要时转换为用户喜欢的任何本地化格式。也许他们想要MM-DD-YYYY 或Mmm dd, YYYY,你不知道。这就是为什么您将其保存以备后用。 ISO 日期可以索引范围并计算,这种奇怪的格式不能。
试试这个!
update TABLENAME
set date_columnname = LEFT(date_present_columnname,10)
【讨论】: