首页 > 解决方案 > 将 SQLite 整数导出为 DateTime

问题描述

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

从 SQLite 导出和生成的导出的修改需要 100% 编写脚本。插入 SQL Server 数据库将通过 SQL Server Management Studio 手动完成。

通过这里的答案,我有一个很好的数据库转储。我可以根据需要修改大部分脚本sed

我现在坚持的一件事是 SQLite 数据库将时间戳存储为自 UNIX 纪元以来的秒数。SQL Server 中的等效列是DATETIME. 据我所知,将整数插入 DateTime 是行不通的。

有没有办法指定某些字段在从 SQLite 转储时以某种方式转换?意思是,指定整数字段作为 SQL Server 可以理解的正确日期时间字符串转储?

或者,有什么我可以在 Linux 命令行上运行的东西以某种方式找到这些整数时间戳并转换它们吗?

编辑:任何在 Ubuntu 上的 Bash 脚本中运行的东西都是可以接受的。

标签: sql-serversqlite

解决方案


三种基本解决方案:(1)修改dump前的数据;(2) 在转储后操作文件,或 (3) 在导入时修改数据。您选择哪一个将取决于您有多少自由来修改模式。

如果您希望在 SQLite 中执行此操作,我建议添加text具有根据需要存储的日期的列以导入到 SQL Server,然后忽略或删除转储中的原始列。SQLite文档页面datetime()可能会有所帮助,可能会回答这个问题

或者,您可以在 SQL Server中编写一个处理导入的函数。也许将其设置在插入触发器上。

否则,操作转储文件的脚本也会起作用。听起来您对如何执行此操作有很好的了解。


推荐阅读