在Oracle中转换日期格式

时间:2014-10-10 14:44:26

标签: sql oracle

我在Excel中有一个日期格式2011-01-06T06:30:10Z。我想从excel中将日期部分加载到一个表中。如何从中获取日期部分。 即2011-01-06

由于

2 个答案:

答案 0 :(得分:2)

试试这个:

select cast(TO_TIMESTAMP_TZ(REPLACE('2011-01-06T06:30:10Z', 'T', ''), 'YYYY-MM-DD HH:MI:SS TZH:TZM') as date) from dual

答案 1 :(得分:0)

我认为,需要更多解释。

将数据加载到数据库中是一部分,并且在获取之后显示它是另一部分。

如果您已将数据加载到数据库中,那么您需要做的就是使用TRUNC。它将截断time部分,并仅显示date部分。

DATE始终具有日期时间部分。 TIMESTAMPDATE类型的扩展。而你所看到的日期看起来并不是它存储在数据库中的方式。格式是我们人类要理解的。日期以内部格式存储在7字节中。

更多信息基于OP的评论问题

从不 DATE 存储为 VARCHAR2 数据类型。日期不是字符串文字。 Oracle提供了大量FORMAT MODELS来按您希望的方式显示日期时间。迟早,由于数据转换,您将遇到性能问题。始终使用显式转换将文字转换为完美DATE,以将其与其他日期值进行比较。