mysql - 将时间戳从 MySQL 导入到 Postgres

标签 mysql postgresql datetime import

我使用 mysqldumppsql 从 MySQL 迁移到 Postgres 并收到此错误:

ERROR: date/time field value out of range: "0000-00-00 00:00:00" at character 52 STATEMENT: INSERT INTO "cron" VALUES (1,'2015-07-11 05:21:40','0000-00-00 00:00:00',2,58,'updateBid','plus',NULL,NULL),(2,'2015-07-11 05:21:40','0000-00-00

MySQL 表看起来像

CREATE TABLE "cron" (
  "id" int(11) NOT NULL,
  "execute_after" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  "executed_at" timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',

Postgres 表如下所示:

CREATE TABLE "cron" (
  "id" int NOT NULL,
  "execute_after" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  "executed_at" timestamp,

如何自动导入该字段?

最佳答案

好的,我用 sed 解决了这个问题:

mysqldump --compress --compatible postgresql --no-create-info --compact dbname | sed $'s/\'0000-00-00 00:00:00\'/NULL/g' | psql dbname

关于mysql - 将时间戳从 MySQL 导入到 Postgres,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32728434/

相关文章:

c# - 获取两个值之间的时间差

MySQL 查询在延时和条件期间检查警报

php - 尝试创建表时无法修复 mysql 中的语法错误

ruby-on-rails - 在 Linux 机器上为 Rails 项目安装 Postgres 的技巧

postgresql - NLog 到 PostgreSQL 连接

python - Datetime 的 strftime 格式不正确

mysql - ActiveRecord::StatementInvalid: Mysql2::Error: 超过锁定等待超时

mysql - 根据第一个表列连接第二个表

mysql - 当该类别的任务插入到任务表中时,我想增加该类别的任务计数

postgresql - 来自 Homebrew 软件的 osm2pgsql 和 postgresql 9.1 无法在 Mac 上连接