【发布时间】:2019-05-20 20:40:10
【问题描述】:
我是 Thunderbird 用户,我正在使用自包含的 .sqlite 文件 (global-messages-db.sqlite) 来开发一些 sql 脚本,我正在尝试制作感觉这个数据库中的不同对象,还有 message 表,其中有 date 列,但它似乎不是日期字符串,它向我显示了一堆数字。
到目前为止,我有这个查询:
SELECT a.c1subject AS "SUBJECT",
a.c3author AS "FROM",
a.c4recipients AS "TO",
b.date,
c.folderURI AS "FOLDER_LOCATION",
c.name AS "FOLDER_NAME"
FROM messagesText_content a
INNER JOIN messages b ON a.docid=b.id
INNER JOIN folderLocations c ON b.folderID=c.id
WHERE a.c1subject LIKE ('Chunk of text%');
这是查询检索到的日期结果:
1547902246000000
1547823370000000
1547651729000000
这可能是什么意思?这可能是因为某些配置吗?如何将此字符串转换为人类可读的日期?
注意:我也直接从命令行使用 sqllite3 命令来检查这一行,我得到了相同的结果。
感谢任何建议,谢谢。
更新:为了将纪元格式转换为人类可读的日期,我在我的 SQLlite 数据库上使用STRFTIME 函数进行了此查询:
SELECT a.c1subject AS "SUBJECT", STRFTIME('%d/%m/%Y %H:%M:%S',DATETIME(SUBSTR(b.date,1,10)-18000, 'unixepoch')) AS "DATE"
FROM messagesText_content a, messages b, folderLocations c
WHERE STRFTIME('%d/%m/%Y',DATETIME(SUBSTR(b.date,1,10), 'unixepoch')) > 'DD/MM/YYYY'
AND a.docid=b.id
AND b.folderID=c.id
AND a.c1subject = ('YOUR_TEXT)')
ORDER BY b.date DESC;
-18000 参数用于减去 5 小时,因为特定的服务器配置。
希望这会有所帮助!
【问题讨论】:
标签: sqlite thunderbird