我是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命令来检查此行,并且我的结果相同。
任何建议将不胜感激,谢谢。
更新:为了将时期格式转换为人类可读日期,我在SQLITE数据库上使用了此查询,并使用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小时。希望这会有所帮助!
日期以来可能以秒数为单位。应该有许多网站可以帮助您转换它。例如,您可以尝试此网站转换您的日期:
https://www.epochconverter.com/