with
mytab (ts) as
(
values
'2018-12-12-10.59.59.892'::timestamp(12)
, '2018-12-12-11.00.00.000'::timestamp(12)
, '2018-12-12-11.00.00.000'::timestamp(12) - 0.000000000001 second
)
, userinput (ts) as
(
values
'2018-12-12-10.59.00'::timestamp
)
select t.ts
from mytab t
join userinput u on
t.ts >= u.ts
and t.ts < u.ts + 1 minute
3条答案
按热度按时间wrrgggsh1#
一种方法是使用BETWEEN predicate,它相当于您在问题中提供的内容:时间戳10:59:00到时间戳10:59:59之间的记录。
你也可以先检查日期,然后再检查时间。或者你从有问题的时间戳中减去你期望的时间戳(2018-12-12 10:59:00),它需要小于1分钟。许多选项...为了简单起见,使用BETWEEN。
vsaztqbk2#
如果mytab(ts)上有索引:
| 运输系统|
| - ------|
| 2018年12月12日10:59:59.89亿美元|
| 2018年12月12日10时59分59秒|
fiddle
xqk2d5yq3#
另一种简单的方法是这样使用
TRUNC_TIMESTAMP