テーブルmy_recordには、DDMMYYYYHHMMSS
形式の値を持つStartDate列があります(列データ型はVARCHARです)。
テーブルグループからデータを抽出する日付はYYYYMM
です。oracleの部分文字列を使用してYYYYMM形式の日付値を読み取る方法
私はMMYYYY
形式でデータを抽出する以下の作業クエリを持っています。
SELECT /*+ PARALLEL(a , 8) */
NVL (SUBSTR (StartDate, 3, 6), 'Total') "Year-Month",Started",
TO_CHAR (COUNT (1), '999,999,999') "Customer Count",
TO_CHAR (
SUM (Usage)/60,
'999,999,999')`enter code here`
"Duration (M)"
FROM customer_records a
WHERE type='NEW'
and customer_status=0
GROUP BY ROLLUP (to_date(SUBSTR (StartDate, 3, 6),'MMYYYY'), 'Total')
ORDER BY 1;
ですが、日付の書式はYYYYMM
になります。
私は以下のオプションを試しました。しかし
SELECT /*+ PARALLEL(a , 8) */
NVL (to_date(SUBSTR (StartDate, 3, 6),'MMYYYY'), 'Total') "Month Started",
TO_CHAR (COUNT (1), '999,999,999') "Customer Count",
TO_CHAR (
SUM (Usage)/60,
'999,999,999')
"Duration (M)"
FROM customer_records a
WHERE type='NEW'
and customer_status=0
GROUP BY ROLLUP (to_date(SUBSTR (StartDate, 3, 6),'MMYYYY'), 'Total')
ORDER BY 1;
は、誰かがYYYYMM
形式でデータをフェッチするために、クエリの上で編集するために私を助けてくださいすることができ、動作していませんか?
は、形式がDDMMYYYYHHMMSSなのでStartdateのsubstrを取る必要があります。 – Msn
その日付が日付形式の場合は、部分文字列を取る必要はありません – Rams
答えに感謝します。 01481 00000 - "無効な数値書式モデル" *原因:数字を文字列 に変換しようとしています(TO_CHARを使用しているか、文字列をTO_NUMBERで数字に変換しようとしています)。 に無効な数値形式モデルパラメータ。 – Msn