Redshift查询BETWEEN不返回任何内容

时间:2018-06-27 21:25:36

标签: sql amazon-redshift

以下是不返回任何内容的查询:

select TOP 10 *
from table
WHERE 'date' BETWEEN '2018-05-01' AND '2018-05-04'
ORDER BY "date";

一无所获。

以下返回10行:

select TOP 10 *
from table
WHERE 'date' = '2018-05-01'

顺便说一句,日期列为TIMESTAMP。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您的where子句始终为假,因为在英语中为:

  

其中字符串“日期”介于字符串“ 2018-05-01”和字符串“ 2018-05-04”之间

false

'date'更改为"date"。然后,您将比较date (日期文字将自动从文本转换为日期)。

答案 1 :(得分:0)

对我来说很好...

firebase.firestore().collection('users').doc(`${email}`).get()

返回的数据:

match /users/{userId} {
  allow create, read, update: if request.auth.uid != null;
}

提示:混合日期和时间戳时要小心。像CREATE TABLE stackoverflow (foo TIMESTAMP); INSERT INTO stackoverflow VALUES (GETDATE()); INSERT INTO stackoverflow VALUES ('2016-01-01 00:11:22'::timestamp); INSERT INTO stackoverflow VALUES ('2018-01-01 01:02:03'::timestamp); SELECT * FROM stackoverflow WHERE foo BETWEEN '2017-02-02' AND '2018-05-04'; 这样的比较可能只会找到恰好是当天开始午夜的时间戳。