我有类似的数据库,它们来自同一个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迁移了我的数据库,如果这有用的话。
谢谢。
答案 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;