我有一个名为entrytimestamp
的日期时间字段,该字段的内容例如为:2014-01-07 16:20:00
。我想查询entrytimestamp
点之后09:00:00
的所有数据,无论它是什么日期。
我有一个原型查询:
select *
from trading
where to_char(entrytimestamp, "%H%M%S") >= "090000"
但我认为这在逻辑上是一个错误,因为它会比较文本字符串,而不是序列值。什么是正确的方法?
答案 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的,所以不确定它是否有效,对不起