尝试运行以下查询,
select * from "Activities" where "CreatedDateTime" = '2020-04-01 05:52:59'::timestamp;
其中CreatedDateTime类型为时间戳
如前所述,最有可能的原因是存储的时间戳有微秒级的数据,而您的查询没有:
2020-04-01 05:52:59.128256 != 2020-04-01 05:52:59
为了解决这个问题,你可以使用一个时间间隔进行比较,如:
SELECT * FROM "Activities"
WHERE "CreatedDateTime" >= '2020-04-01 05:52:59'
AND "CreatedDateTime" < '2020-04-01 05:53:00';
您还没有指定编程语言,但如果您正在使用编程语言,那么向现有的时间戳或日期时间对象添加第二种语言应该很容易。
问题是几分之一秒。一种解决方案是:
date_trunc('second', "CreatedDateTime") = '2020-04-01 05:52:59'::timestamp
但是,我不建议这样做,因为它不能使用索引。相反:
"CreatedDateTime" >= '2020-04-01 05:52:59'::timestamp and
"CreatedDateTime" < '2020-04-01 05:52:59'::timestamp + interval '1 second'
注意:这假设您希望对匹配进行"截断"。如果要取整:
"CreatedDateTime" >= '2020-04-01 05:52:59'::timestamp - 0.5 * interval '1 second' and
"CreatedDateTime" < '2020-04-01 05:52:59'::timestamp + 0.5 * interval '1 second'