首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将SQL VARCHAR2日期更改为其他日期格式

将SQL VARCHAR2日期更改为其他日期格式
EN

Stack Overflow用户
提问于 2012-10-29 19:30:03
回答 2查看 1K关注 0票数 0

我在数据库中有一个日期(存储为VARCHAR2),格式为:

代码语言:javascript
运行
复制
20090123_163842.865
yyyyMMdd_hhmmss.ttt

我想做一个SQL语句来获得:

代码语言:javascript
运行
复制
23/01/2009 16:38:42,865
dd/MM/yyyy hh:mm:ss,ttt

我的目标是手动将其作为可识别的日期添加到Excel中(我知道数据可以从数据库导出,也可以导入到Excel中,但我想手动完成)。

我的SQL语句应该是怎样的?

我试着通过以下方式来实现:

代码语言:javascript
运行
复制
select TO_TIMESTAMP(my_time_utc, 'YYYYMMDD_HH24MISS.FF3') from myTable

但我只能得到:

代码语言:javascript
运行
复制
2009-01-23 16:38:42.865

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-29 19:33:33

令我惊讶的是,有那么多人把这些操作搞糊涂了。

首先,您需要将varchar 'fake date‘转换为一个真实的日期:为此使用to_date。然后,您需要将日期转换为varchar以进行表示:为此,请使用to_char

代码语言:javascript
运行
复制
select to_char(to_date(column, 'yyyyMMdd_hhmmss.ttt'), 'dd/MM/yyyy hh:mm:ss,ttt')
from your_table;

应该做你想做的事。

票数 3
EN

Stack Overflow用户

发布于 2012-10-29 19:37:51

当从数据库中检索日期字段并由oracle向您显示时,将执行强制转换隐式转换。此转换的格式模式是在oracle配置中设置的。Quoting oracle doc

Oracle日期值的默认日期格式派生自NLS_DATE_FORMAT和NLS_DATE_LANGUAGE初始化参数

  • 如果从excel执行查询,则实际查询就足够了,因为excel知道日期格式,并且能够顺利地从Oracle读取数据。
  • 如果您从屏幕结果复制粘贴到Excel,则应该将日期转换回具有所需格式的varchar,当然,也应该更改oracle配置以匹配您的区域设置。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13120766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档