[英]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()
來格式化第一列。 但是,我想強調的是,您的數據和代碼應該使用date
或timestamp
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.