【问题标题】:Convert MM/DD/YYYY HH:MM:SS to Unix Timestamp (SQL) [duplicate]将 MM/DD/YYYY HH:MM:SS 转换为 Unix 时间戳 (SQL) [重复]
【发布时间】:2013-08-16 09:29:09
【问题描述】:

我正在寻找一种解决方案,将 MySQL 表中的 MM/DD/YYYY HH:MM:SS 存储日期转换为 Unix 时间戳。

【问题讨论】:

  • 您的第一个问题是日期时间存储为字符串。
  • 开始将日期存储为日期是否为时已晚?
  • @ÁlvaroG.Vicario 不幸的是,在导入数据之前,我无法控制这些数据——它都是由“古老”技术生成的。

标签: mysql datetime unix-timestamp


【解决方案1】:

由于您的日期格式很奇怪,您可以使用STR_TO_DATE 对其进行转换,然后使用UNIX_TIMESTAMP

SELECT UNIX_TIMESTAMP(STR_TO_DATE('08/14/2013 22:12:19','%m/%e/%Y %H:%i:%s'));

您可能需要考虑将存储的日期切换为真实日期,因为这将使 MySQL 日期函数的使用更加简单。

【讨论】:

  • 不幸的是,在将日期格式导入数据库之前,我无法控制它。您会建议什么作为转换表中所有日期(数百万)的最有效解决方案,将有效日期放入相邻列? (或最坏的情况覆盖现有的)。
  • @eversonjw 我会将日期放入一个新列并移至现有列,这样如果出现任何问题,旧列仍然会存在。至于效率,最好将其作为一个新问题提出,以便您获得最佳答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-03
  • 2016-12-16
  • 2017-07-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多