我有来自用户输入的日期字符串,格式为DD/MM/YYYY
,我需要将其与DD-MON-YY
格式的数据库中的日期列进行匹配。
示例输入是01/01/2015
和我们数据库中的示例日期列:
SELECT MAX(creation_date) FROM orders;
MAX(creation_date)
------------------
06-AUG-15
我需要以下列格式查询:
SELECT * FROM orders WHERE creation_date = 01/01/2015
并以某种方式转换为01-JAN-15
。
是否可以使用一些内置的Oracle函数?
答案 0 :(得分:1)
答案 1 :(得分:0)
答案 2 :(得分:0)
使用to_date
将日期列与日期字符串进行比较,但要小心这样做,因为您的日期列可能包含从表中选择时未显示的时间组件。
如果日期列中没有索引,则可以在比较期间截断它:
SELECT * FROM orders WHERE TRUNC(creation_date) = TO_DATE('01/01/2015','mm/dd/yyyy');
如果您的日期列中有索引但您仍想使用它,请使用远程比较:
SELECT * FROM orders
WHERE creation_date >= TO_DATE('01/01/2015','mm/dd/yyyy')
and creation_date < TO_DATE('01/01/2015','mm/dd/yyyy')+1;