投放日期类型仅显示时间

在我的数据库(Oracle 11数据库)中,我有一个属性,该属性为Date类型,但由于某种原因在该值中包含一个时间,idk为什么它是Date类型而不是DateTime。当我选择此“ Position_time”时,它当然只显示日期,但是当我尝试对该列进行过滤时,会多次显示同一日期的更多选项,因此即使该列是日期类型,该列中也存在一个时间值。 Link to picture of position_time context

从图像中可以看到,即使该属性的类型为Date,它也包含一个时间“ component”。只有当我尝试过滤该列的idk时,它才会在概述btw中显示。

我想从我的约会中提取这段时间。我看过很多文章,解释了如何从DateTime列而不是从Date中提取。我无法更改此列的类型。有什么办法可以做到这一点? 例如

select
format(tr.position_time)
from positions
miaojia628 回答:投放日期类型仅显示时间

您是这样说的吗?

    select to_char(to_date(position_time,'dd-mm-yyyy HH24:MI:SS'),'HH24:MI:SS') time from positions;

如果您已经将日期类型作为参数传递,则只需使用to_char函数从中提取时间即可。

例如:

Select to_char(position_time,'HH24:MI:SS') from positions;
,

您将转换为字符串:

select to_char(tr_position_time,'HH24:MI:SS')
from positions;
,

在Oracle中,date数据类型由日期+时间组成。

这是您的IDE的NLS设置,它显示这样的数据。

如果要显示日期和时间,请使用:

select
To_char(tr.position_time,'dd-mon-rrrr hh24:mi:ss')
from positions 

或者,如果您只想要时间部分,请使用:

select
To_char(tr.position_time,'hh24:mi:ss')
from positions

如果您想查看会话中所有时间的日期,请更改会话的NLS设置。

ALTER SESSION SET NLS_DATE_FORMAT = 'dd-mon-yyyy hh24:mi:ss';

select
tr.position_time -- formatting is not needed
from positions

同样在您的IDE中,必须有更改NLS设置的设置。

干杯!

本文链接:https://www.f2er.com/3080498.html

大家都在问