【问题标题】:What is the format of the 'date' field in global-messages-db.sqlite?global-messages-db.sqlite 中“日期”字段的格式是什么?
【发布时间】: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


    【解决方案1】:

    自纪元以来的日期可能以秒为单位。应该有许多网站可以帮助您转换它。例如,你可以试试这个网站来转换你的日期:

    https://www.epochconverter.com/

    【讨论】:

    • 谢谢@rcode74 我会检查页面看看是否可以将日期与 Thunderbird 接口进行比较
    • 是的,这是有道理的,我会检查是否可以批量执行转换,因为我的查询检索了超过 1000 行
    猜你喜欢
    • 2019-03-13
    • 2015-01-17
    • 1970-01-01
    • 2015-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    相关资源
    最近更新 更多