Oracle选择没有时间的日期并将日期保留为数据类型

时间:2017-04-17 22:53:43

标签: oracle date time

我的列名'Cos_Date'的值为14APR2017:00:00:00。

但是,对于新列名'Arrival_Date',我希望保留日期信息但省略时间,并将数据类型保持为Date,而不是Character。例如,14APR2017。

我试过了:

  select TO_CHAR(Cos_Date, 'DD-MON-YYYY') ARRIVAL_DATE

但它会删除时间信息,但数据类型会变为Character

我在这个网站上搜索,并尝试了两个:

  select TO_DATE(TO_CHAR(Cos_Date, 'DD-MON-YYYY'), 'DD-MON-YYYY')  ARRIVAL_DATE

  select TRUNC(Cos_Date) ARRIVAL_DATE

但它不会遗漏时间信息。

我可以试试别的吗?

谢谢!

3 个答案:

答案 0 :(得分:0)

你不能"省略" Oracle中DATE列的时间部分。 DATE数据类型始终包含时间组件。如果您不想看时间,请不要显示它,例如,

SELECT TO_CHAR(TRUNC(Cos_Date),'DD-MON-YYYY') FROM dual;

答案 1 :(得分:0)

在Oracle中,没有日期数据类型只有一个月 - 月 - 日组件。

DATE数据类型在内部存储为7- or 8-bytes,它始终具有年(2字节),月(1字节),日(1字节),小时(1字节) ,分钟(1字节)和秒(1字节)。

TIMESTAMP数据类型也有小数秒(也可以有时区)。

  

我可以试试别的吗?

不,您要么使用VARCHAR2字符串,要么使用DATETIMESTAMP并接受它有时间组件。

答案 2 :(得分:0)

选择没有时间的日期值:

SELECT date_col
  FROM table
 WHERE TO_CHAR (date_col, 'HH24:MI:SS') = '00:00:00';