Oracle:对datetime进行过滤查询

时间:2017-12-13 10:50:10

标签: oracle datetime timestamp

我需要使用

限制查询
SELECT ... FROM ... 
WHERE my_date=(RESULT FROM A SELECT)
...  ;

为了实现我使用选择时间戳的结果(如果我改为使用日期时间,我从我的选择中得不到任何东西,因为我使用的格式修剪了第二个日期时间)。

可悲的是,这不起作用,因为这些查询:

select DISTINCT TO_DATE(TO_TIMESTAMP(TO_DATE('25-10-2017 00:00', 'dd-MM-yyyy HH24:MI'))) from DUAL;

返回

ORA-01830:日期格式图片在转换整个输入字符串之前结束

如何处理时间戳到日期转换?

2 个答案:

答案 0 :(得分:1)

如果你只想比较和检查他的日期,请在LHS和RHS上使用trunc。

SELECT ... FROM ... 
WHERE trunc(my_date)=(select trunc(RESULT) FROM A)
...  ;

这只是通过截断时间戳值

来比较日期

答案 1 :(得分:1)

您可以在查询中使用“TRUNC”和“IN”关键字的组合来实现您的期望。请查看以下查询示例作为参考。

SELECT * FROM customer WHERE TRUNC(last_update_dt) IN (select DISTINCT (TRUNC(last_update_dt)) from ... )

干杯!!