我一直在努力计算在特定工作日创建了多少个值:
SELECT count(*) as count FROM packets WHERE strftime("%w", timeIn) = '1';
我在timeIn
中有这个值1472434822.60033
1472434829.12632
1472434962.34593
我不知道我在这里做错了什么。
此外,如果我使用它:
SELECT count(*) as count FROM packets WHERE strftime("%w", timeIn) = '6';
我得到了
2
没有意义。先感谢您。
答案 0 :(得分:1)
您似乎将日期存储为自1970年以来的秒数(Unix纪元) - 一种常见的表示形式。 SQLite date functions接受的时间字符串(请参阅时间字符串部分)默认将数字时间字符串解释为Julian日数字:
同样,格式12显示有10位有效数字,但日期/时间函数将真正接受表示朱利安日数所需的数字或数字。
您可以使用以下SELECT
:
SELECT strftime('%Y-%m-%d', 1472428800.6) AS t
结果是:
4026-48-26
要将您的日期表示解释为Unix纪元,您需要在'unixepoch'
电话中加入strftime
:
SELECT strftime('%Y-%m-%d', 1472428800.6, 'unixepoch') AS t
返回:
2016-08-29
如果您将SELECT
修改为:
SELECT count(*) as count FROM packets WHERE strftime("%w", timeIn, 'unixepoch') = '6'
你应该看到结果更符合你的期望。