回答
试试这个:
select cast(TO_TIMESTAMP_TZ(REPLACE('2011-01-06T06:30:10Z', 'T', ''), 'YYYY-MM-DD HH:MI:SS TZH:TZM') as date) from dual
非常感谢,是的,它工作。令人敬畏! – 2014-10-10 15:00:24
你不需要'REPLACE',只需做'cast(TO_TIMESTAMP_TZ('2011-01-06T06:30:10Z','YYYY-MM-DD“T”HH:MI:SS TZH:TZM')日期)' – 2014-10-10 15:25:32
@ Wernfried是的!那也起作用了。谢谢。这对于快速处理肯定有帮助 – 2014-10-10 15:32:15
我认为,需要一些更多的解释。
将数据加载到数据库中是一个部分,在提取后显示它是另一部分。
如果您已将数据加载到数据库中,那么您只需使用TRUNC
即可。它会截断time
部分,并将只显示date
部分。
DATE总是有一个日期时间部分在一起。 TIMESTAMP
是DATE
类型的扩展。而你看到的日期看起来不是它存储在数据库中的方式。格式适合我们人类理解。日期以内部格式存储在7个字节中。通过评论
基于OP的问题
更多信息 NEVER商店DATE为VARCHAR2数据类型。日期不是字符串文字。 Oracle提供了很多FORMAT MODELS
以按照您的需要显示日期时间。迟早,由于数据转换,您将遇到性能问题。始终使用显式转换将文字转换为完美DATE
以将其与其他日期值进行比较。
好的,我正在谈论转换和加载数据,显示很简单。现在我将在excel中这样做,“=插入测试值(cast(TO_TIMESTAMP_TZ(REPLACE ('&A2&','T',''),'YYYY-MM-DD HH:MI:SS TZH:TZM')作为日期)); – 2014-10-10 15:29:32
这很好。祝你好运!你可以搜索谷歌'但我想存储日期',你会得到Ed Stevens的一篇非常好的文章,阅读它。这很棒。我希望我的回答能让你更好地理解:-) – 2014-10-10 15:32:06
当然!再次感谢您将阅读文章 – 2014-10-10 15:35:16
- 1. 如何在oracle中将日期转换为格式“dd/mm”?
- 2. 在oracle中将号码转换成日期格式
- 3. 将IST日期格式转换为Oracle sysdate格式
- 4. Oracle日期转换
- 5. oracle - 将许多日期格式转换为单一格式日期
- 6. 在Sql Server中转换日期格式
- 7. 在PHP中转换日期格式
- 8. 转换日期到MySQL日期格式
- 9. 转换日期格式/加密日期
- 10. 日期格式转换
- 11. 转换为日期格式
- 12. 转换Unix日期格式
- 13. 转换日期格式Perl
- 14. 转换日期格式
- 15. Java日期格式转换
- 16. 转换日期格式
- 17. 转换日期格式
- 18. 日期格式转换javascript
- 19. PHP日期格式转换
- 20. 转换日期格式为
- 21. 转换日期格式
- 22. 转换日期格式
- 23. 转换日期格式SQL
- 24. 转换日期格式
- 25. Sql转换日期格式
- 26. 转换日期格式
- 27. Metl - 转换日期格式
- 28. 日期格式转换Ruby
- 29. Oracle - 日期格式
- 30. Oracle日期格式
如果您已经将数据加载到数据库中,那么您只需使用'TRUNC'。 DATE总是有一个日期时间部分。而你看到的日期看起来似乎不是它存储在数据库中的方式。格式适合我们人类理解。日期以内部格式存储在7个字节中。 – 2014-10-10 14:59:32
@lalit kumar B谢谢你的信息。我会尝试加载数据,但在加载之前,我在想我应该创建哪种列类型,因为它最后有Z,所以不知道它是否是时间戳格式。 – 2014-10-10 15:04:29
加载它使用'TRUNC'。它会截断时间部分,并只显示日期部分。如果这是您的要求的一部分,请告诉我,我将它添加为答案 – 2014-10-10 15:10:28