这感觉就像以前有人回答过一样,但我尝试的所有方法都无效。我有一个包含帐户、余额和时间戳的表。我想选择所有记录(包括余额)。我已经尝试过使用BETWEEN运算符和AND、我尝试过〉=和〈=,但是当我知道其中还有其他行时,我总是得到0行。当我只为〉=或〈=分别添加1个条件时,它似乎可以工作,但是当组合的行返回为空时。
我使用Typescript并使用pg
和一些中间件将Dates传入其中。我使用了一个条件,即如果transactionsAfter和transactionsBefore未定义,则应分别将其设置为new Date(0)
和new Date()
(也称为现在)。
第一个
我试过这个:
'SELECT * FROM creditsAndDebits WHERE account = $1 AND timestamp >= $2::timestamp AND timestamp <= $3::timestamp ORDER BY timestamp DESC',
[
accountPubKey,
transactionsAfter,
transactionsBefore
]);
以及以下内容:
'SELECT * FROM creditsAndDebits WHERE account = $1 AND timestamp BETWEEN $2::timestamp AND $3::timestamp ORDER BY timestamp DESC',
[
accountPubKey,
transactionsAfter,
transactionsBefore
]);
有人请指出,我一直在做一些愚蠢的整个时间。
1条答案
按热度按时间f3temu5u1#
解决了!问题是在typescript中的Date不符合PostgreSQL的时间戳,所以我需要做的是传递transactionsAfter和transactionsBefore作为ISO字符串,在每个日期值上使用
.toISOString()
。