我有一张有上百万张唱片的桌子。我正在尝试将一列数据格式化为DATE格式,该格式目前是VARCHAR2格式。但是,我得到的ORA-01843不是一个有效的月份错误。
我正在努力弄到那些导致ORA-01843的记录
CREATE OR REPLACE PROCEDURE pr_TEST_CUSTOM_ORA1843 AS
v_company MyTable.MyColumn%TYPE;
BEGIN
BEGIN
SELECT to_char(to_date(TRIM(MyColumn), 'YYMMDD'), 'MM/DD/
我在数据类型日期的报告查询中有两个参数,我选择了fnd_standard_date作为值集,下面是我的查询
Select ordered_date, order_number, customer_id
From order_tbl xx
Where NVL(:P_ORDER_NUMBER, xx.order_number) = xx.order_number
and xx.ordered_date between NVL(trunc(TO_DATE(:P_FROM_DATE, 'YYYY/MM/DD HH24:MI:SS')), xx.ORDERED_DATE
我对下面的清算脚本有困难:
<sql>
MERGE INTO A config
USING (SELECT 100 as id, '02.01.15 12:00:00' as CHANGED, 0 as DELETED, 1 as B FROM DUAL) src ON (src.id = config.id)
WHEN NOT MATCHED THEN
INSERT(id,CHANGED, DELETED, B) VALUES(src.id, src.CHANGED, src.DELETED
我试图从表列中获得最低日期和最高日期。正在使用下面的SQL查询。
select MIN(trunc(TO_DATE(MOD_BEGIN, 'YYYYMMDDHH24MISS'))) AS MIN_DATUM
, MAX(trunc(TO_DATE(MOD_END, 'YYYYMMDDHH24MISS'))) AS MAX_DATUM
from V_IPSL_PPE_MUC_AZEIT;
在PL/SQL中使用此查询。从上面的查询输出,我将生成日期范围。我们正在使用甲骨文19c。
但是问题是,这些列MOD_BEGIN,MOD_END只有很少的无效值(例
SELECT c.CYCLE_OID,
SUM(CASE
WHEN a.NAME = 'Loading'
THEN '1'
ELSE '0'
END) AS LOAD_COUNT from CYCLE c
INNER JOIN mssolhist.CYCLEACTIVITYCOMPONENT a on a.OID = c.CYCLE_OID
WHERE c.STARTTIME_UTC >= to_date(to_char(sysdate-10,'dd-MM-yyyy')) AND c.ENDTIME
我有以下示例数据:
Country | Members | Joined
USA | 250 | 1/1/2012
USA | 100 | 1/8/2012
Russia | 75 | 1/20/2012
USA | 150 | 2/10/2012
当我查询此数据时,我希望聚合给定月份的所有记录。查询的结果如下所示:
Country | Members | Joined
USA | 350 | 1/2012
Russia | 75 | 1/2012
USA | 150
我有一列有下面的示例数据。该列的数据类型为VARCHAR2.。
050211
042911
110428
110428
AO0102
JAN 31
FEB 01
当我尝试用以下代码将列记录格式化为可读格式时,我将
ORA-01843 : Not a valid month
SELECT to_char(to_date(TRIM(MyColumn), 'YYMMDD'), 'MM/DD/YYYY') FROM MyTable;
我相信ORA-01843被抛出是因为AO0102的记录,1月31日,2月1日。
我怎么能忽略那些抛出ORA-01843并只格式化那些可
我正在尝试减去时间戳值。它给出ORA-01843: NOT A VALID MONTH错误。
下面的查询在SQL Devloper中运行得很好,但在运行时它抛出的不是有效的月份错误。
Select substr(TO_TIMESTAMP(TO_CHAR(end_time,'DD-MM-YY HH12:MI:SS'))-(TO_TIMESTAMP(TO_CHAR(start_time,'DD-MM-YY HH12:MI:SS')),12,8))as Duration from Job_execution
我正在使用JPA 1,并有一个本机查询执行以下语句:
select NVL (max (x.some), 0) from (select count (1) as some, service from some_table Where trunc (fh_report) = '09 / 01/2015 'group by service) x
标记错误是:
java.sql.SQLDataException: ORA-01843:无效月份
但是,如果我把ORACLE ide中的句子复制得很好,我就有两个数据库,一个用于测试,一个用于生产,生产过程中标记了这个错误,
所以我有一个小剧本:
set serveroutput on;
DECLARE
val DATE;
BEGIN
val := TO_DATE('27-Jan-2001','DD-Mon-YYYY');
dbms_output.put_line(val);
END;
面具与我输入的日期相匹配,但它显示
ORA-01843:无效月份
每次..。
谢谢
这是我的查询
SELECT *
FROM (SELECT TO_DATE(INV_DATE, 'YYYYMMDD') INVOICE_DATE
FROM SAPSCH.SAP_TABLE T
WHERE T.INV_DATE <> '00000000')
WHERE INVOICE_DATE = '14-Sep-2012';
SAPSCH.SAP_TABLE是一个视图,它使用dblink连接到schema。列INV_DATE为'YYYYMMDD‘格式。例如,“20120914”指的是
我想把我的用户选择的日期转换成GMT格式并存储在DB中。
查询:
select cast('7/1/2015 12:00:00 AM' as timestamp) AT TIME ZONE 'GMT' from dual
引发以下错误:
ORA-01843: not a valid month
01843. 00000 - "not a valid month"
当提到月份时,查询工作得很好,但是我在it.Similarly中找不到任何GMT转换--如何在不更改hh:mm:ss的情况下将月份更改为MMM。请帮帮忙
我有一个接受以下格式日期的查询:
‘2012年8月31日’
我需要查询以数字形式返回月份。对于上述日期,返回值为08
我尝试过以下几种方法:
EXTRACT(MONTH FROM DATE '31 AUG 2012')
TO_DATE('31 AUG 2012', 'MM')
TO_CHAR('31 AUG 2012', 'MM')
所有这些都分别给出了以下错误:
ORA-01861:文本与格式字符串ORA-01843不匹配:不是有效的月份ORA-01722:数字无效
如何才能做到这一点?谢谢
基本上想要删除Oracle表中的旧分区,目前SUBSTR函数有问题。
代码:
DECLARE
l_sql_stmt VARCHAR2(1000);
l_date DATE;
BEGIN
FOR x IN (SELECT *
FROM user_tab_partitions
WHERE table_name = 'TABLE_NAME')
LOOP
l_date := to_date( substr( x.high_value, 11, 19 ), 'YYYYMMDD' );
我得到错误消息: ORA-01843:在执行sql脚本后的一个月内无效。
我尝试使用“标准”日期格式yyyy。
SQL/PL是否不理解alter语句?
set linesize 200
set pagesize 1000
alter session set NLS_NUMERIC_CHARACTERS = ',.';
alter session set NLS_DATE_FORMAT = 'yyyy-mm-dd';
select
*
from my_table
where
date >= '2019-08-31';
exit