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 迁移错误:检测到无效的时间戳文字的主要内容,如果未能解决你的问题,请参考以下文章