sqlite中整数转化为日期

数据库服务和管理,MySQL/PostgreSQL/Oracle/Sybase 等
回复
头像
百草谷居士
帖子: 3145
注册时间: 2006-02-10 16:36
系统: ubuntu18.04/Win10
送出感谢: 25 次
接收感谢: 36 次
联系:

sqlite中整数转化为日期

#1

帖子 百草谷居士 » 2019-07-12 9:45

我使用dbeaver将SQL server中数据导出到sqlite中,其中的datetime类型一开始导出到sqlite中被dbeaver标记为timestamp类型。
一开始是没有问题的,在dbeaver中进行查询操作,都可以自动转换为日期类型。
但是,今天操作时,发现这一列全部变成了长达13位的整数。我使用datetime函数进行转换,得到的是空值。
sqlite在运算上支持timestamp类型,但在表存储应该是不支持timestamp类型的,所以才会出这样的问题。
而长达13位的整数,也远远超出了sqlite的timestamp的范围。

一开始,dbeaver是如何自动转换的?
现在,我又该如何进行手工转换?
Ubuntu 19.04
米聊群:Ubuntu交流群,ID:50326269。注册米聊用户后可以搜索加入,即时通讯,沟通更快捷
头像
astolia
论坛版主
帖子: 3862
注册时间: 2008-09-18 13:11
送出感谢: 1 次
接收感谢: 643 次

Re: sqlite中整数转化为日期

#2

帖子 astolia » 2019-07-12 10:19

按毫秒计的unix时间吧,简单点就是除以1000后再转换
这些用户感谢了作者 astolia 于这个帖子:
百草谷居士 (2019-07-12 10:20)
评价: 3.7%
头像
百草谷居士
帖子: 3145
注册时间: 2006-02-10 16:36
系统: ubuntu18.04/Win10
送出感谢: 25 次
接收感谢: 36 次
联系:

Re: sqlite中整数转化为日期

#3

帖子 百草谷居士 » 2019-07-12 10:21

除以1000,再使用date或者datetime函数转换,附加'unixepoch'和'localtime'修饰符。
Ubuntu 19.04
米聊群:Ubuntu交流群,ID:50326269。注册米聊用户后可以搜索加入,即时通讯,沟通更快捷
回复

回到 “数据库管理”