1
select  to_date(to_number(to_char(created_on_date,'MMDDYYYY')),'MMDDYYYY') from is_mdm_customer

上記のクエリが与えている

Error starting at line 1 in command:
select  to_date(to_number(to_char(created_on_date,'MMDDYYYY')),'MMDDYYYY') from is_mdm_customer
Error report:
SQL Error: ORA-01843: not a valid month
01843. 00000 -  "not a valid month"
*Cause:    
*Action:
4

3 に答える 3

2

日付型は、varchar ではなく DATE 列として格納する必要があります。月、日、年が必要な場合は、それらの列も追加できます。

日付を比較するだけです。時間、分、秒を比較したくない場合は、そのように保存します。INSERTまたはUPDATEする日の真夜中に時間を設定します。次に、DATE を直接比較できます。

フォーマットはビューのレンダリングにのみ影響し、それ以上は影響しません。

于 2012-10-29T12:25:41.013 に答える
1

時間部分を削除したいだけの場合は、TRUNCATE()を使用します。

select  TRUNC(created_on_date) from is_mdm_customer

パラメータをTRUNCATE関数に渡して、日付を別の方法で切り捨てることもできます。ただし、YEARだけが必要な場合は、EXTRACT()の方が適していることがよくあります。

参照:Oracle 11g Trunc(日付)

于 2012-10-29T12:50:15.727 に答える
0

これは、列created_on_dateが日付列として定義されている場合に使用できます。

is_mdm_customerからto_char(created_on_date、'MMDDYYYY')を選択します。

于 2012-10-29T12:32:05.697 に答える