2017-02-12 222 views
1

返回空列的我的连接/左连接查询有什么问题?用sqlite返回Chrome浏览历史记录的CSV

我遇到的问题是日期时间字段返回空/空白。 我发布我的整个过程,但它似乎只是查询不工作。日期时间转换工作在此查询但不是下面的那个:

SELECT datetime(last_visit_time/1000000-11644473600,'unixepoch','localtime'), url,title, visit_count, typed_count FROM urls ORDER BY last_visit_time DESC; 

但它不是我想要的确切数据。 最终目标是让我访问每个网站的每个日期和时间,以及每天访问多少次。我将通过api将此csv发送到另一个系统。

这是我的在终端(MAC)处理(命令行): 导航到历史文件夹

cd ~/Library/Application\ Support/Google/Chrome/Default/") 

然后

sqlite3 History 

然后在源码提示 “源码>”

.headers on 
.mode csv 
.output my.csv 
SELECT urls.id, urls.url, urls.title, urls.visit_count, urls.typed_count, datetime((urls.last_visit_time/1000000)-11644473600, 'unixepoch', 'local time'), urls.hidden, urls.favicon_id, datetime((visits.visit_time/1000000)-11644473600, 'unixepoch', 'local time'), visits.from_visit, visits.visit_duration, visits.transition, visit_source.source FROM urls JOIN visits ON urls.id = visits.url LEFT JOIN visit_source ON visits.id = visit_source.id ORDER BY visits.visit_time desc; 

这是什么被返回为csv文本:(注意空的日期时间字段)

url, title, visit_count, typed_count, datetime((urls.last_visit_time/1000000)-11644473600, 'unixepoch', 'local time'), hidden, favicon_id, datetime((visits.visit_time/1000000)-11644473600, 'unixepoch', 'local time'), from_visit, visit_duration, transition, source 
https://www.sqlite.org/cli.html, Command Line Shell For SQLite, 2, 0, , 0, 0, , 136309, 0, 1610612736 , 

回答

0

工作查询仅记录持续时间:

datetime(  visit_time/1000000 -11644473600, 'unixepoch', 'localtime') 

不工作查询:

datetime((urls.visit_time/1000000)-11644473600, 'unixepoch', 'local time') 

您必须正确拼写localtime

+0

伟大的发现。我看不到树木。 –

0

中期答案:我的最终目标,但不是问题。 为什么我有空白列的问题是未知在这一点上:

最终目标是收集所有浏览过的网址: 没有多少点查询所有我查询的字段。所以我简化了查询先手网址:不需要

select datetime((visits.visit_time/1000000)-11644473600, 'unixepoch', 'localtime') AS VisitTime, urls.url, visits.visit_duration FROM visits LEFT JOIN urls ON visits.url = urls.id order by visits.visit_time 

urls.visit_count因为每一行是一个单一的数量,使得它是多余的我。

为音符,它看起来像visit.visit_duration如果关闭选项卡上,如果浏览器被关闭,它记录为0。

+0

btw:visit_duration是微秒而不是毫秒 –