Informix SQL在Where语句上比较DateTime值

时间:2014-01-07 09:22:06

标签: sql datetime informix

我有一个名为entrytimestamp的日期时间字段,该字段的内容例如为:2014-01-07 16:20:00。我想查询entrytimestamp点之后09:00:00的所有数据,无论它是什么日期。

我有一个原型查询:

select *
from trading
where to_char(entrytimestamp, "%H%M%S") >= "090000"

但我认为这在逻辑上是一个错误,因为它会比较文本字符串,而不是序列值。什么是正确的方法?

2 个答案:

答案 0 :(得分:2)

使用EXTEND()功能提取时间部分:

select *
from mytable
where extend(entrytimestamp, hour to second) > '09:00:00'

答案 1 :(得分:0)

我不知道它是否表现良好, 但你可以直接与日期时间的时间部分进行比较,

我认为这里的演员应该表现得非常快(只是截止日期)

select *

from (select getdate() as mydatetime) as data

where cast(mydatetime as time) > cast('09:00:00' as time)

编辑,刚才注意到这是针对Informix SQL的,所以不确定它是否有效,对不起