从SQLite数据库中选择是否输入来自今天' .Timestamp是GMT但SELECT应该是特定于时区的

时间:2014-07-10 01:14:07

标签: sqlite

我有一个存储在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日。

为什么会这样?

1 个答案:

答案 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}}不是关键字,因此您根本不需要引用它。