Ger*_*ton 2 sql oracle datetime
我有两个表,我在每个表的日期列中查询.
在一种情况下,需要在日期字段上使用trunc()函数来获取值,而另一种情况则不需要.
这就是表1的工作原理:
SELECT to_char( datecol1 ,'mm/dd/yyyy hh:mm:ss')
FROM table1 where datecol1 =to_date('10/07/2010', 'mm/dd/yyyy');
Run Code Online (Sandbox Code Playgroud)
但是在表2中,上面的语法不起作用,我需要trunc(),例如:
SELECT to_char( datecol2 ,'mm/dd/yyyy hh:mm:ss')
FROM table2 where trunc(datecol2) =to_date('10/07/2010', 'mm/dd/yyyy');
Run Code Online (Sandbox Code Playgroud)
需要注意三点:
有人可以解释一下:
在表1中,您没有数据的"时间"组件,因此日期应该匹配 - 这是您观察到的.但是,您使用mm
的是分钟部分时间的格式 - 但是mm
是月份,而不是分钟(mi
).这就是为什么你看到12点以外的时间,以及为什么它们的范围大约只有12:10(你今年可能只有今年的数据?)
在表2中,由于您拥有数据的"时间"组件,因此需要将其截断以匹配仅限日期的值,这是to_date()
函数返回的值,给定您使用的格式.