Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 将SQLite整数导出为日期时间_Sql Server_Sqlite - Fatal编程技术网

Sql server 将SQLite整数导出为日期时间

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中的等效列

我有一个SQLite3数据库。我还有一个具有相同结构的SQL Server数据库。我需要从SQLite导出数据并将其插入SQL Server数据库

从SQLite导出和修改生成的导出需要100%编写脚本。将通过SQL Server Management Studio手动插入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。任何修改都可以在包中完成。