【问题标题】:Change existing MySQL data to timestamp将现有 MySQL 数据更改为时间戳
【发布时间】:2013-10-31 16:03:33
【问题描述】:

在我的数据库中,我有一个名为 date 的列。目前,该列包含以下格式的日期:

dd/mm/yyyy

有什么我可以运行将其转换为 unix 时间戳的吗?即

01/07/2003 变为 1057017600

大约有 20,000 行历史数据,我需要能够通过 MySQL 本身来做到这一点。

我尝试了以下方法,但是由于日期列格式错误,它不起作用

UPDATE wl_daily
SET
   newdate = UNIX_TIMESTAMP(date)

【问题讨论】:

  • 您是在尝试转换行,还是只是从该表单的行中获取数据?
  • 该字段目前是一个文本字段,其中的数据格式为dd/mm/yyyy。我只需要把它变成数据库中的时间戳。我猜你会说我正在尝试转换行/字段中的数据

标签: mysql


【解决方案1】:

您可以创建一个新列(假设我们称之为 newdate),用您的 olddate 列填充它,删除旧列并重命名 newdate。

ALTER TABLE  `mytable` ADD  `newdate` TIMESTAMP NOT NULL ;
UPDATE `mytable` set newdate=UNIX_TIMESTAMP( STR_TO_DATE(olddate,  '%d/%m/%Y' ) );
ALTER TABLE `mytable` DROP `olddate`;
ALTER TABLE  `mytable` CHANGE  `newdate`  `olddate` TIMESTAMP NOT NULL ;

【讨论】:

  • 不幸的是,每行都使用 0000-00-00 00:00:00
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-08-13
  • 2013-04-22
  • 1970-01-01
  • 2017-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多