在oracle中比较两次

use*_*858 2 oracle date-arithmetic

在Oracle中:

我的表有一个时间戳列,时间值为'02 -NOV-11 12.00.00.000000000 AM'.

我试着比较两个日期:

select id from table1 where mytime = '02-NOV-11'
Run Code Online (Sandbox Code Playgroud)

但它没有返回任何记录.为什么?

谢谢!!!

Ton*_*ews 6

我怀疑它可能是导致问题的默认日期格式,因为查询对我来说很好.编写将日期与字符串进行比较的查询不是一个好习惯,因为这要求Oracle使用默认格式将字符串格式化为日期,这可能与您期望的不同.最好使用ANSI日期文字,如下所示:

select id from table1 where mytime = date '2011-11-02';
Run Code Online (Sandbox Code Playgroud)

ANSI日期文字必须采用格式date 'yyyy-mm-dd',因此格式没有歧义.

日期时间文字的参考