簡體   English   中英

Oracle SQL TO_TIMESTAMP_TZ 格式問題 ORA-01843: 月份無效

[英]Oracle SQL TO_TIMESTAMP_TZ Format issue ORA-01843: not a valid month

我有一個以下格式的 TABLEA(更新的列已根據 UTC 調整了太平洋 TZ)

地位 更新
完全的 2021 年 3 月 9 日 08:27:30 AM -1100
應用程序任務 2021 年 3 月 4 日 12:42:12AM -1100
完全的 2021 年 3 月 11 日上午 9:27:30 -1100
完全的 2021 年 2 月 12 日上午 10:27:30 -1100

我使用了下面的查詢,我得到了預期的數據,但是當我使用下面的查詢生成圖形時,我在 Oracle Apex 中得到“ORA-01843:not a valid month”,似乎我弄亂了日期/時間戳格式。我一直使用 to_date、to_char、trunc 以及 TO_TIMESTAMP_TZ 和 NLS_LANGUAGE 的組合調整查詢,但似乎在循環。如果我在查詢的格式中遺漏了某些內容,任何輸入都將不勝感激?

select TRUNC(TO_TIMESTAMP_TZ(UPDATED),'MONTH') AS Month,COUNT(STATUS) AS "Complete" FROM TABLEA
where STATUS='Complete'
group by TRUNC(TO_TIMESTAMP_TZ(UPDATED), 'MONTH')
order by TRUNC(TO_TIMESTAMP_TZ(UPDATED), 'MONTH')
完全的
2021 年 2 月 1 日 1
2021 年 3 月 1 日 2

謝謝

首先,您應該修復數據 model 以使用不是字符串的適當時間戳來存儲日期/時間值。

其次,我會使用日期返回結果:

select trunc(to_date(substr(update, 1, 11), 'DD/MMM/YYYY'), 'MON') as yyyymm,
       count(*)
from t
group by trunc(to_date(substr(update, 1, 11), 'DD/MMM/YYYY'), 'MON');

當然,您可以使用to_char()來格式化第一列。 但是,我想強調的是,您的數據和代碼應該使用datetimestamp

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM