【发布时间】:2010-10-07 22:08:24
【问题描述】:
我有两个表,我在其中查询每个表中的日期列。
在一种情况下需要在日期字段上使用 trunc() 函数来取回值,在另一种情况下我不需要。
这适用于表 1:
SELECT to_char( datecol1 ,'mm/dd/yyyy hh:mm:ss')
FROM table1 where datecol1 =to_date('10/07/2010', 'mm/dd/yyyy');
但在表 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');
注意三点:
- 在使用 to_char(datecol1 ,'mm/dd/yyyy hh:mm:ss') 查询 table1 时,它看起来好像所有时间都在 12:00 到 12:10 之间,但是全天都插入了值李>
- 向 table1 插入记录时,我只插入 mm/dd/yyyy,没时间
- 向table2插入记录时我插入了时间
有人可以解释一下吗:
- 为什么在table1 上不需要截断,而在table2 上需要截断?
- 为什么 table1 中的所有值都在 12:00 到 12:10 之间?
【问题讨论】: