我正在使用SQLite数据库浏览器从一个包含谷歌浏览器浏览历史的数据库中读取信息。我在"Execute SQL“面板中执行的当前代码如下所示:
SELECT last_visit_time,url,title
FROM urls
WHERE url LIKE {PLACEHOLDER} AND title LIKE {PLACEHOLDER}
出于隐私考虑,"WHERE“行上的内容将被{PLACEHOLDER}
屏蔽。现在,我想让last_visit_time
列中返回的数据是可读的,而不是像13029358986442901
那样混乱。如何做到这一点?如何将Chrome的时间戳转换为可读格式?如何让它按last_visit_time
对它们(返回的行)进行排序
发布于 2014-09-30 18:32:41
答案在this question中给出:"Google Chrome的时间戳的格式是自1601年1月以来的微秒数“。
例如,在我的示例历史数据库中,查询
SELECT
datetime(visit_time / 1000000 + (strftime('%s', '1601-01-01')), 'unixepoch', 'localtime')
FROM visits
ORDER BY visit_time DESC
LIMIT 10;
给出了结果:
2014-09-29 14:22:59
2014-09-29 14:21:57
2014-09-29 14:21:53
2014-09-29 14:21:50
2014-09-29 14:21:32
2014-09-29 14:21:31
2014-09-29 14:16:32
2014-09-29 14:16:29
2014-09-29 14:15:05
2014-09-29 14:15:05
使用时间戳值13029358986442901:
SELECT
datetime(13029358986442901 / 1000000 + (strftime('%s', '1601-01-01')), 'unixepoch', 'localtime')
结果是:
2013-11-19 18:23:06
发布于 2014-10-07 02:51:11
我是个编程新手,所以我不知道你是怎么用sql写的,但是我可以用c#给你展示一个方法。我希望这能帮助一些人。
如果数据库中给定的时间值为:
仅选择前11位数字13029358986。您可以使用以下命令将其转换为时间:
DateTime dateTimeVar = new DateTime(1601,1,1).AddSeconds(time);
这里的答案是: 19-11-2013 18:23:06,这没有您的时区转换。
发布于 2018-12-12 08:25:09
下面是一个用于转换WebKit时间的紧凑表达式:
sqlite> SELECT datetime(time/1e6-11644473600,'unixepoch','localtime') AS time FROM table;
https://stackoverflow.com/questions/20458406
复制相似问题