1),这是为什么,这并不工作Oracle日期比较的字符串和日期
select * from table where trunc(field1)=to_date('25-AUG-15','DD-MON-YY');
select * from table where trunc(field1)=to_date('25/Aug/15','DD/MON/YY');
排在上述情况下返回。
那么,这是否意味着无论日期在field1中的日期是什么格式,如果它是有效日期并且与8月25日匹配,它将被返回(它不会在意在我们指定的格式说明符查询的右侧即DD-MON-YY或DD/MON/YY或其他)?
2),但作为comparsion字符串完全工作:如进行准确的比较返回
select * from table where to_char(field1)=to_char(to_date
('25/AUG/15','DD/MON/YY'), 'DD/MON/YY');
没有行。
我已经FIELD1为'25 -AUG-15' (尽管它可以被看作做不同的ALTER会议NLS_DATE_FORMAT ...)
FIELD1是DATE类型
的理解这个任何帮助表示赞赏特别是关于点1
所以打印出to_char函数的值,看看它们是什么。你想做什么? – OldProgrammer
如果您在第一次投射中指定相同的格式,第二个查询的行为是否相同? 'to_char(field1,'DD/MON/YY')' –
我的观点是,为什么第一种情况下返回的结果不考虑格式说明符,即它只返回8月25日的结果,但它并不关心日期格式 – user1502952