Sql server 将SQLite整数导出为日期时间
我有一个SQLite3数据库。我还有一个具有相同结构的SQL Server数据库。我需要从SQLite导出数据并将其插入SQL Server数据库 从SQLite导出和修改生成的导出需要100%编写脚本。将通过SQL Server Management Studio手动插入SQL Server数据库 通过这个答案,我对数据库有一个大致良好的转储。我可以根据需要使用Sql server 将SQLite整数导出为日期时间,sql-server,sqlite,Sql Server,Sqlite,我有一个SQLite3数据库。我还有一个具有相同结构的SQL Server数据库。我需要从SQLite导出数据并将其插入SQL Server数据库 从SQLite导出和修改生成的导出需要100%编写脚本。将通过SQL Server Management Studio手动插入SQL Server数据库 通过这个答案,我对数据库有一个大致良好的转储。我可以根据需要使用sed修改大部分脚本 我现在一直坚持的一点是,SQLite数据库将时间戳存储为自UNIX纪元以来的秒数。SQL Server中的等效列
sed
修改大部分脚本
我现在一直坚持的一点是,SQLite数据库将时间戳存储为自UNIX纪元以来的秒数。SQL Server中的等效列是DATETIME
。据我所知,在日期时间中插入整数是行不通的
有没有办法指定在从SQLite转储时以某种方式转换某些字段?也就是说,指定整数字段作为SQL Server能够理解的正确日期时间字符串转储
或者,我是否可以在Linux命令行上运行一些东西,以某种方式找到这些整数时间戳并转换它们
编辑:任何在Ubuntu上运行的Bash脚本都是可以接受的。三个基本解决方案:(1)在转储之前修改数据;(2) 在转储后操作文件,或(3)在导入时修改数据。选择哪一个取决于修改模式的自由度
如果您希望在SQLite中执行此操作,我建议添加text
列,其中包含导入到SQL Server所需的存储日期,然后忽略或删除转储中的原始列。SQLite可能会有所帮助,正如它的答案一样
或者,您可以选择处理导入的。也许将其设置为插入触发器
否则,操纵转储文件的脚本也会起作用。听起来您对如何执行此操作有很好的把握。我认为在转储文件中执行此操作会有风险。是否可能在将数据推送到sql server之后转换它们?就像转储文件将推送到一个阶段模式/数据库,然后所有内容都可以推送到目标模式/数据库,并在该步骤中进行转换一样?或者,在转储它们之前转换它们可能是一种选择?“我现在一直坚持的一件事是,SQLite数据库将时间戳存储为自UNIX纪元以来的秒数。SQL Server中的等效列是DATETIME“否SQL Server中的等效数据类型只是
INT
So,类似于在转储时而不是在输入到SQL Server时进行转换,或者只获取SQLite的ODBC驱动程序并使用SSIS或SQL Server导入导出向导将数据从SQLite移动到SQL Server。任何修改都可以在包中完成。