select distinct(date)多次返回相同的日期

BnJ*_*BnJ 1 sql oracle date distinct

在我的Oracle数据库中,我有一个包含Date数据类型列的表.

当我这样做:

select distinct(MY_DATE) from MY_TABLE where extract(year from MY_DATE) = 2014;
Run Code Online (Sandbox Code Playgroud)

我明白了:

结果

当我这样做时:

select MY_DATE from MY_TABLE where extract(year from MY_DATE) = 2014;
Run Code Online (Sandbox Code Playgroud)

这就是我的意思:

结果

我想这是因为秒和毫秒的不同.

如何忽略我的fisrt查询中只有一个结果的日期时间?

Mah*_*kar 7

尝试下面的查询,它只会TRUNC()在您使用DISTINCT它之前添加到您的日期列.

select distinct(TRUNC(MY_DATE)) from MY_TABLE where extract(year from MY_DATE) = 2014;
Run Code Online (Sandbox Code Playgroud)

这是因为列数据中的时间因素不同.

TRUNC() 将使时间元素无效,仅保留日期

查询将实际显示它.TO_CHAR()输出以指定格式保存的日期.

select TO_CHAR(MY_DATE,'MM-DD-YYYY HH24:MI:SS') from MY_TABLE where extract(year from MY_DATE) = 2014;
Run Code Online (Sandbox Code Playgroud)

更多TRUNC来自甲骨文的文档