在oracle DB中选择日期类型的查询

时间:2014-05-04 21:18:08

标签: sql oracle

我在oracle数据库中编写sql查询,但是存在表名,还有oracle resualts有错误,表没有找到表或视图

我写这个查询的另一个问题

select * from Table_name where DDATE="30-05-2014;

but id doesn't return anything how to write where with date type 

3 个答案:

答案 0 :(得分:3)

正如@Alex Poole所说..使用TO_DATE()函数:

select * from your_table where date_column = TO_DATE('01/01/2014' , 'dd/mm/yyyy');

但要确保你的" date_column" DATE类型列。

要考虑的另一点是,如果该列也包含TIME(例如:11/30/2012 10:00:00 AM),请使用

select * from your_table where TRUNC(date_column) = TO_DATE('01/01/2014' , 'dd/mm/yyyy');

这只会比较日期分数,并根据具体情况给出结果。

干杯!

答案 1 :(得分:2)

改为使用DATE文字:

select * from Table_name where VHFDATE= DATE '2014-05-30';

或者,如果从UI或其他地方提供日期值,请使用绑定变量:

select * from Table_name where VHFDATE= :in_vhf_date;

答案 2 :(得分:0)

这些可能是导致这些错误的部分原因。

1)如果您获得表或视图不存在错误,则表示您可能没有足够的权限

2)对日期数据类型使用类似to_date()的日期格式。

 select * from your_table where to_date(date_column,'DD-MON-YYYY')='30-MAR-2012';

3)检查您是否有该特定日期的数据。您可以使用简单的 GROUP BY 来检查该数据的记录数。

 select count(*),date_column from your_table group by date_column order by date_column desc;