3
我使用Flask在页面上显示日期和温度。数据存储在SQLite数据库中。它与字符串的日期和时间很好,但我试图将日期和时间转换为unix时代时遇到了问题。从字符串到字符串unixepoch的日期转换
Python代码:
cur = db.execute('select date,temperature from temperatures where temperatures.date > datetime(\'now\',\'-1hour\', \'localtime\') order by date desc;')
entries = cur.fetchall()
return render_template('dashboard2.html', entries=entries)
模板:
{% for entry in entries %}
{{ entry.date }} --- {{ entry.temperature }}
{% endfor %}
结果是:
2013-04-08 21:26:22 --- 22.31
我想要做的事:
sqlite> select strftime('%s',date),temperature from temperatures where temperatures.date > datetime('now','-1hour', 'localtime') order by date desc;
给出(SQLite中控制台):
(...)
1365340231|22.56
1365340221|22.56
1365340210|22.5
1365340199|22.56
(...)
但:
cur = db.execute('select strftime(\'%s\',date),temperature from temperatures where temperatures.date > datetime(\'now\',\'-1hour\', \'localtime\') order by date desc;')
这个选择给出烧瓶中entry.temperature在entry.date空值和预期值模板:
--- 22.31
我在下面发布了解决方案。
无关:请记住,您可以互换使用两种引用。如果你使用'“”'来编写SQL查询,你不必转义引号。 – liori 2013-04-07 16:55:58
哪个版本的SQLite是这样的?使用'-1hour'修饰符(在数字和'小时之间没有空格)我使用'datetime()'函数获得'NULL',而使用'-1 hour'返回一个日期。我正在使用SQLite 3.7.16。 – 2013-04-07 18:38:04
@AudriusKažukauskasSQLite 3.6.22。朋友已经帮我解决问题了。看起来我在解释问题时犯了一些错误。我会尽力修复它。 – 2013-04-08 19:28:43