postgresql 用于获取两个日期之间的记录并添加条件的Postgres查询

hs1ihplo  于 2022-12-12  发布在  PostgreSQL
关注(0)|答案(1)|浏览(209)

这感觉就像以前有人回答过一样,但我尝试的所有方法都无效。我有一个包含帐户、余额和时间戳的表。我想选择所有记录(包括余额)。我已经尝试过使用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
            ]);

有人请指出,我一直在做一些愚蠢的整个时间。

f3temu5u

f3temu5u1#

解决了!问题是在typescript中的Date不符合PostgreSQL的时间戳,所以我需要做的是传递transactionsAfter和transactionsBefore作为ISO字符串,在每个日期值上使用.toISOString()

相关问题