以下是不返回任何内容的查询:
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。
有什么想法吗?
答案 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';
这样的比较可能只会找到恰好是当天开始午夜的时间戳。