【发布时间】:2017-09-18 12:19:53
【问题描述】:
我正在尝试创建一个 where 子句,它可以返回带有下表的日期时间间隔,更具体地说,我正在使用此查询:
select *
from tb_alarms c
where to_char(c.e3timestamp, 'dd/mm/yyyy hh24:mi') >= '13/09/2017 16:00'
and to_char(c.e3timestamp, 'dd/mm/yyyy hh24:mi') <= '14/09/2017 07:05'
但是,此查询返回带有 e3timestamp 字段的行,其值从 14/06/2011 07:49:29 开始,到 14/09/2017 07:04:30 结束。
为什么它返回 2011 年的日期?是因为它比较的是字符而不是日期类型吗?
你们能帮我或指出我可以学习如何使用完整的日期时间间隔执行正确的 where 子句的来源吗?
谢谢!
OBS:e3timestamp 是 tb_alarms 表中 Date 类型的字段。
【问题讨论】:
-
为什么不能换一种方式比较呢?
where c.e3timestamp > = to_date('13/09/2017 16:00', 'dd/mm/yyyy hh24:mi')?