我有一个存储在SQLite数据库中的任务列表,其中包含GMT格式的时间戳,如下所示:
Timestamp: 2014-07-10 00:42:43
我正在努力完成所有今天的任务。但是今天'与时区相关。 (所以东部标准时间的上述时间戳示例实际上是7月9日而不是第10次的任务
我的查询:
"SELECT * FROM " + TABLE_TASKS + " WHERE date('timestamp','localtime') >= date('now', 'start of day','localtime')"
当GMT时间翻到第二天时,没有选择任务,即使在EST中它仍然是7月9日。
为什么会这样?
答案 0 :(得分:0)
> create table t(timestamp);
> insert into t values (datetime('now'));
> select date('timestamp') from t;
> select date("timestamp") from t;
2014-07-10
> select date(timestamp) from t;
2014-07-10
在SQL中,用单引号括起来的任何内容都是字符串,而timestamp
中的timestamp
不是supported formats中的日期/时间值。
如果您想要quote an identifer(即表名或列名),则需要使用双引号。 但是,{{1}}不是关键字,因此您根本不需要引用它。