我的列名'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
但它不会遗漏时间信息。
我可以试试别的吗?
谢谢!
答案 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
字符串,要么使用DATE
或TIMESTAMP
并接受它有时间组件。
答案 2 :(得分:0)
选择没有时间的日期值:
SELECT date_col
FROM table
WHERE TO_CHAR (date_col, 'HH24:MI:SS') = '00:00:00';