我收到錯誤訊息:ORA-01843:在執行 sql plus 腳本后不是有效月份。
我嘗試使用“標準”日期格式 yyyy-mm-dd。
SQL/PL 不理解alter session 陳述句嗎?
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
uj5u.com熱心網友回復:
在我看來,您需要做的不是將日期值與字串進行比較。
假設date這里實際上代表一個DATE資料型別列(你為什么不發布表描述?)(正如已經評論過的,你不能這樣命名一個列,除非你把它的名字用雙引號括起來),然后
where date >= '2019-08-31'
---- ------------
DATE this is a string
datatype
使用日期文字,它總是有一個DATE關鍵字和格式的日期'yyyy-mm-dd':
where date >= date '2019-08-31'
或者,使用to_date具有適當格式掩碼的函式:
where date >= to_date('2019-08-31', 'yyyy-mm-dd')
如果date列(正如我們已經知道的那樣,名稱錯誤)實際上包含字串,并且您希望所有這些字串都遵循該'yyyy-mm-dd'格式,那么,有些值則沒有。將日期存盤到varchar2資料型別列中幾乎總是一個壞主意。沒有人會阻止您將例如存盤'2019-ac-31'到其中,這不是有效的日期值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/388708.html
上一篇:更改引導日期選擇器的回傳格式
下一篇:在2個時間戳之間獲取一整天
