SQL Server:从mysql迁移时与int不兼容的日期。怎么解决?

时间:2014-07-15 11:29:53

标签: mysql sql-server date int migration

我有类似的数据库,它们来自同一个CMS,但它们使用不同的数据库:一些最初是SQL Server,另一个是MySQL。

我必须将MySQL数据库迁移到SQL服务器,因为我已经为SQL Server准备了一些脚本了。不想转换,b。转换起来比较复杂,因为我使用的某些函数并没有在MySQL中实现。

这个最初是SQL Server的数据库运行没有问题:

SELECT Birth_Date+1 FROM TABLENAME

然而,当我在数据库中从SQL迁移的同一个表上运行它时,我收到此错误:

  

操作数类型冲突:日期与int

不兼容

我知道为什么会出现这个错误以及如何解决它?

我使用SSMA,SQL Server Migration Assistent迁移了我的数据库,如果这有用的话。

谢谢。

2 个答案:

答案 0 :(得分:2)

消息相当清楚,您不能将+运算符与日期和int一起使用。

您应该使用DATEADD函数(在Sql Server中)

在mysql中DATE_ADD

例如

DATE_ADD(Birth_Date, interval 1 DAY)

DATEADD(day, 1, Birth_Date)在Sql Server中

答案 1 :(得分:1)

错误似乎很清楚。您无法向date添加整数,但可以向datetime添加整数。据推测,Birth_Date的数据类型在一个数据库中为date,在另一个数据库中为datetime(或类似)。

以下是两个解决方案:

SELECT cast(Birth_Date as datetime)+1 FROM TABLENAME;

SELECT dateadd(day, 1, Birth_Date) FROM TABLENAME;