选择DISTINCT(日期)多次返回相同的日期
在我的Oracle数据库上,我有一个表,其中有一列的数据类型为Date
。
当我这样做时:
select distinct(MY_DATE) from MY_TABLE where extract(year from MY_DATE) = 2014;
我明白了:
当我执行此查询时:
select MY_DATE from MY_TABLE where extract(year from MY_DATE) = 2014;
这就是我拥有的:
我猜是因为秒和毫秒不同。
如何忽略Time In Date以便在我的First查询中只有一个结果?
解决方案
尝试下面的查询,该查询只需将TRUNC()
添加到您的日期列中,然后再获取DISTINCT
。
select distinct(TRUNC(MY_DATE)) from MY_TABLE where extract(year from MY_DATE) = 2014;
这是因为列数据中的时间因素不同。
TRUNC()
将使时间元素无效,仅保留日期
查询实际上会显示它。TO_CHAR()
输出以指定格式保存的日期。
select TO_CHAR(MY_DATE,'MM-DD-YYYY HH24:MI:SS') from MY_TABLE where extract(year from MY_DATE) = 2014;
有关TRUNC
来自Oracle Docs
相关文章