Oracle 日期格式转换问题
Posted
技术标签:
【中文标题】Oracle 日期格式转换问题【英文标题】:Oracle Date Format Conversion Issue 【发布时间】:2015-03-11 19:21:17 【问题描述】:我已经走到了尽头,所以希望有人能帮助我!我对 Oracle 很陌生,但确实有 SQL 背景,这就是为什么我觉得这很令人沮丧!
我们有一个在后端运行 Oracle 的系统。我对系统的访问权限非常有限,只能编写选择查询。
我已经编写了一个查询来获取我想要的数据,但日期格式显示为 mm dd yyyy
我需要的是 dd/mm/yyyy
我跑了SELECT sysdate FROM dual
,然后返回:
SYSDATE
03 11 2015
所以我的选择语句是(action_date 是有问题的列)
Select username, action_date from adminview
我已经尝试了所有我能想到的更改日期格式的方法,包括:
to_date(action_date,'dd/mm/yyyy')
to_date(action_date,'dd/mm/yyyy','nls_language=English')
to_date(to_date(action_date,'mm dd yyyy'),'dd/mm/yyyy')
我也尝试过to_char
。
【问题讨论】:
您的列action_date
是日期还是varchar?
试试alter session set nls_date_format = 'DD/MM/YYYY'
我不确定 Aramillo,因为我通过视图访问它。我无权访问任何表或数据类型。我实际上只能运行 select 语句,kordirko .... 所以不能运行“alter”
【参考方案1】:
如果要格式化DATE
值,请使用TO_CHAR()
:
SELECT username, TO_CHAR(action_date, 'DD/MM/YYYY') AS action_date
FROM adminview;
如果它不是DATE
值,那么您需要将其转换为DATE
(基于它当前的样子),然后使用TO_CHAR()
进行格式化。
【讨论】:
你是一颗宝石!谢谢你。这是我错过的“AS action_date”......傻傻的我!以上是关于Oracle 日期格式转换问题的主要内容,如果未能解决你的问题,请参考以下文章