我需要oracle中特定日期之间的表字段

时间:2015-06-06 16:55:25

标签: oracle

我的表'PORT_DTLS'包含以下字段:TN,Status_id,Req_Start_Time。 Req_Start_Time的时间格式为“8/12/2017 2:22:14.490361 PM”。

我尝试过这个查询..

select TN,Status_id 
from PORT_DTLS 
where Req_Start_Time between '8/11/2017 2:22:14.490361 PM' 
                         and '8/12/2017 2:22:14.490361 PM';

但我得到'不是有效的月份'错误。

任何人都可以帮助我。

1 个答案:

答案 0 :(得分:1)

您的数据看起来像列是TIMESTAMP而不是DATE。您应该使用显式格式来适当地转换这些字符串。

select TN,Status_id 
from PORT_DTLS 
where Req_Start_Time between to_timestamp('8/11/2017 14:22:14.490361' , 'DD/MM/YYYY HH24:MI:SS.FF')
                   and to_timestamp('8/12/2017 14:22:14.490361','DD/MM/YYYY HH24:MI:SS.FF');

我假设您的日期为DD/MM;也许他们真的是MM/DD,在这种情况下你需要调整我发布的格式掩码。很可能是模糊不清是导致ORA-01843错误的原因。