如何让Oracle识别英文日期格式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何让Oracle识别英文日期格式相关的知识,希望对你有一定的参考价值。

学习Oracle时做练习,需要插入的表中有date类型的值比如'21-Jun-04',执行语句后报了这个错误ORA-01843: 无效的月份
之后作了修改alter session set nls_date_format='DD-MON-YY'还是报同样的错误
又作了修改alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
结果又报错误ORA-01858: 在要求输入数字处找到非数字字符
我也知道把sql语句里的英文月份改成中文的就行了,但我不想这样,因为我用的是sql脚本,一改一大堆太麻烦了,问问各位高手有没有解决办法啊?

TO_DATE ('21-Jun-04', 'dd-Mon-yy', 'NLS_DATE_LANGUAGE = American'),如果客户端是windows操作系统也可以修改注册表将NLS_LANG修改为AMERICAN_AMERICA.XXXXXX 参考技术A DNF 参考技术B alter session set nls_date_format='yyyy-mm-dd:hh24:mi:ss'
少了个:,在dd和hh中

如何更改 Oracle BI Publisher 中的日期格式?

【中文标题】如何更改 Oracle BI Publisher 中的日期格式?【英文标题】:How to change the date format in Oracle BI Publisher? 【发布时间】:2015-02-25 05:35:58 【问题描述】:

如何在使用数据模型创建报告时更改日期格式,该数据模型是使用从数据仓库获取聚合数据的简单 SQL 查询创建的?我需要简单的 dd-mon-yy 格式的日期。我无法找到 BI Publisher 中存在格式选项的位置。我使用的 BI 组件是数据透视表。

订单问题:

尽管我已经在数据模型中对数据进行了排序,但数据在图表中的显示顺序仍然不正确。同样的事情在数据表上工作正常。见下文-

【问题讨论】:

在您的查询级别,to_dateto_char 是您的朋友。看我的回答。 【参考方案1】:

我需要简单的 dd-mon-yy 格式的日期。

您是否在查询中使用了正确的格式模型?

例如,

如果数据库中的日期值为20150225,则需要先使用TO_DATE和相应的FORMAT MODEL将其转换为日期。

to_date('20150225','YYYYMMDD')

要以所需格式显示日期,只需使用 TO_CHAR 和所需格式模型:

to_char(to_date('20150225','YYYYMMDD'),'DD-MON-YYYY')

看看这个article。

更新关于图表中月份的字母排序

在web找到以下信息:

如果您正在使用 RTF 模板设计图表,请尝试以下操作:

    右键单击图表图像 - 单击大小 - 单击 AltText 选项卡 将图表代码复制到记事本中 寻找标签ColLabels它会是这样的:

ColLabelsxsl:for-each select=".//G_1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"xsl:sort order="ascending" select="FIRST_NAME"/Labelxsl:value-of select="FIRST_NAME" //标签/xsl:for-each/ColLabels

请查看已突出显示的排序顺序。在排序顺序中,您可以添加包含月/年组合的字段/列。如果您的图表使用分组功能,那么xsl:sort order="ascending" select="current-group()/FIRST_NAME"/

【讨论】:

该解决方案确实有效,但按照相同的思路,我将月份转换为“Mon-Yy”并创建了一个图表 - 现在月份已乱序 - 它们按字母顺序排列!跨度> to_char 仅在 select 中使用,在您订购时,只需按原始日期列订购。例如,SELECT to_char(hiredate, 'DD-MON-YYYY') FROM emp ORDER BY hiredate; 谢谢,我知道我们一般是怎么做的。因此,基本上发布者将按照与数据模型中相同的顺序获取数据。我们无法更改前端的顺序。对吗? 该工具将采用与您的语言环境特定的 NLS_DATE_FORMAT 相同的格式 虽然数据表显示的顺序与我使用的数据模型中规定的顺序相同,但图表仍显示月份的字母顺序。【参考方案2】:
    选择列(类型:日期) 点击属性(左栏) 更改:格式化样式 (Oracle) 和格式化掩码 (DD/MM/YYYYY)

【讨论】:

【参考方案3】:

这很简单。 按照导航。

双击该字段-> 选择类型为日期和日期格式为 dd-MMM-yyyy。 这应该可以解决您的问题

我想发布图片,但没有声誉。

这有什么帮助..

【讨论】:

以上是关于如何让Oracle识别英文日期格式的主要内容,如果未能解决你的问题,请参考以下文章

oracle日期格式长度9如何转为长度10

oracle日期转换

oracle数据库如何改变日期格式

如何在Oracle中将时间戳转化为日期格式

oracle中如何转换时间格式

怎样修改oracle默认的日期格式