MySQL 迁移错误:检测到无效的时间戳文字

Posted

技术标签:

【中文标题】MySQL 迁移错误:检测到无效的时间戳文字【英文标题】:MySQL Migration error: Invalid timestamp literal detected 【发布时间】:2013-07-10 04:17:24 【问题描述】:

我正在尝试将 MS SQL 2008 R2 数据库迁移到 mysql 5.6 CE。我正在使用 MySQL WorkBench 5.2。迁移完成时出现大量错误。

大部分错误是:

[WRN][copytable]:检测到无效的时间戳文字:''。

此错误消息毫无意义,因为许多表没有DateTime 列。例如,它试图从这个表中迁移 4 行数据:

/****** Object:  Table [dbo].[defResidentialStatus]    Script Date: 07/11/2013 14:33:47 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[defResidentialStatus](
    [idResStatusKey] [int] IDENTITY(1,1) NOT NULL,
    [desc1] [nvarchar](50) NOT NULL,
    [desc2] [nvarchar](50) NOT NULL,
    [active] [bit] NOT NULL,
 CONSTRAINT [PK_defResidentialStatus] PRIMARY KEY CLUSTERED 
(
    [idResStatusKey] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

ALTER TABLE [dbo].[defResidentialStatus] ADD  CONSTRAINT [DF_defResidentialStatus_active]  DEFAULT ((1)) FOR [active]
GO

日志是这样的:

TestDB.defResidentialStatus:从表中复制4列4行 [TestDB].[dbo].[defResidentialStatus]

''

04:33 [WRN][copytable]:检测到无效的时间戳文字:''

04:33 [WRN][copytable]:检测到无效的时间戳文字:''

04:33 [WRN][copytable]:检测到无效的时间戳文字:''

04:33 [WRN][copytable]:检测到无效的时间戳文字:''

04:33 [WRN][copytable]:检测到无效的时间戳文字:''

>>

04:34 [警告][copyPROGRESS:TestDB.defResidentialStatus:4:4 ...... TestDB.defResidentialStatus 已失败(已复制 4 行中的 0 行)

我不知道发生了什么。这是一个非常简单的表格,有 4 列和 4 行。这不是返回此类错误的唯一表,但它是最简单的表之一。

表格中的数据:

1   Pending     Pending     1    
2   Arrived     Arrived     1    
3   Cancelled   Cancelled   1    
4   Departed    Departed    1

【问题讨论】:

这是我发现的一个网站,可以帮助您回答您的问题。 databasejournal.com/features/mysql/… 【参考方案1】:

日期时间 - 在 MYSQL 中日期时间不包含毫秒。 SQL Server 日期时间数据类型包含毫秒。错误:“检测到无效的时间戳文字”错误。解决方案:如果您不介意丢失毫秒,请在 SQL Server 中将 datetime 类型转换为 smalldatetime。

下面是一些转换代码:

SELECT CONVERT(smalldatetime,<columnName>);

在转换之后,你不应该有任何麻烦导入它。

【讨论】:

以上是关于MySQL 迁移错误:检测到无效的时间戳文字的主要内容,如果未能解决你的问题,请参考以下文章

使用docker容器的错误时间戳:时区设置无效

Redshift COPY 错误 1206 无效时间戳

Rails 和 Postgres:迁移到 change_colomn 时出现错误“无法强制转换为没有时区的时间戳”

bigquery 标准 sql 错误,时间戳无效

Eloquent:带有时间戳的无效默认值

Laravel 迁移 - 创建时间戳时的问题