所以我有一个日期格式为
的字段 mm/dd/yyyy HH:MM:SS
我想选择一定时间之前的记录。所以mm / dd / yyyy不仅仅被认为是时间戳。
所以我想
select * from table where datefield < 5:00am
答案 0 :(得分:2)
在oracle中有许多函数可以处理日期/时间戳。 以下是“提取”的示例:
select extract(hour from d), extract(minute from d)
from
(select systimestamp as d from dual)
EXTRACT(HOURFROMD) EXTRACT(MINUTEFROMD)
------------------ --------------------
14 52
以防万一,有TO_CHAR,TO_NUMBER,TO_DATE函数的炮兵
TO_NUMBER(TO_CHAR(yourdate, 'HH24')) < 5
此外,从您的问题中不清楚您拥有什么类型的列 如果它是日期/时间戳,那么我上面的回答应该适合你。 如果它是VARCHAR2或类似的,你有一个选择: 1.使用TO_DATE转换为日期(您的日期,'您的格式') 2.使用SUBSTRING等字符串函数手动分隔小时和分钟。
答案 1 :(得分:0)
可能会有所帮助。
select * from table where to_number(to_char( timestamp, 'HH24' )) < 5