根据时间戳而不是日Oracle获取记录

时间:2014-04-18 14:40:08

标签: sql oracle time

所以我有一个日期格式为

的字段

mm/dd/yyyy HH:MM:SS

我想选择一定时间之前的记录。所以mm / dd / yyyy不仅仅被认为是时间戳。

所以我想

select * from table where datefield < 5:00am

2 个答案:

答案 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