【问题标题】:How to update / convert YYYY-MM-DD date to timestamp in MySQL如何在 MySQL 中将 YYYY-MM-DD 日期更新/转换为时间戳
【发布时间】:2018-02-12 08:16:24
【问题描述】:

我发现了与此问题相关的非常相似的问题,例如 MySQL convert datetime to Unix timestampHow to convert DATETIME to TIMESTAMP in mysql? 。但我不知道如何将这些答案应用于我的问题......

我在学生表中有一个名为“start_date”的列(varchar 类型,由于我使用的 CMS 的一些技术限制,我无法将数据类型更改为日期)。日期显示为YYYY-MM-DD。我想将它们更改为时间戳。

我看起来像,

UPDATE students SET start_date= convert_this_to_timestamp (start_date);

所以基本上我需要使用 MySQL 将 2012-12-30 转换为 1356843600

【问题讨论】:

  • 来吧。如果你有能力提出问题,你肯定有能力回答它。
  • 新建一个数值列并设置它。不要将日期存储为文本,也不要通过将 UNIX 时间戳值存储到同一列中来继续这样做。
  • @TimBiegeleisen 实际上这是针对 WordPress 网站的。我使用列名表名作为示例...我无法更改任何列类型或任何内容,因为 WordPress 就是这样来的...但是为了写出可以理解的问题,我使用了一个例子......但我想在 WordPress wp_postmeta 表上运行这个查询,因为日期被保存为自定义字段......但我需要将它们转换为时间戳......
  • 请试试这个? UPDATE students SET start_date_timestamp= UNIX_TIMESTAMP (start_date) LIMIT 1; 如果它按预期适用于一行,请删除限制并运行其余记录。为此创建一个带有integer 类型的新字段start_date_timestamp

标签: mysql date datetime timestamp


【解决方案1】:

正如@Tim Biegeleisen 所说,您需要添加一个新的数字列:

UPDATE students SET start_date_ts = UNIX_TIMESTAMP(STR_TO_DATE(start_date, '%Y-%m-%d'));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-19
    • 2014-06-11
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多