2

私が持っている日付列があり、varchar2それらの値を変換したいYYYY-MM-DD

DATE
7/26/2013
7/29/2013
8/1/2013 
8/4/2013 
7/28/2013
7/31/2013
8/3/2013 
7/30/2013
8/5/2013 
7/25/2013
8/2/2013 
8/6/2013 
7/27/2013
4

4 に答える 4

8

列に日付を格納しないでくださいVARCHAR

したがって、別の方法で表示するには、最初に文字列を日付に変換してから文字列に戻す必要があります

すべての「日付」が正しい (そして同じ) 形式であることが確実な場合は、次のように動作するはずです。

select to_char(to_date(date, 'mm/dd/yyyy'), 'yyyy-mm-dd')
from the_table;

しかし、1 つ以上の行に異なる形式の日付が含まれているため、エラーが発生しても驚かないでしょう。列をDATE最初からタイプとして定義していた場合、起こり得なかったことです。

その列を実際の列に変更することを真剣に検討する必要がありDATEます。

ところで:DATEそのような列の恐ろしい名前です。これは予約語であり、その列に実際に格納されているもの (「開始日」、「終了日」、「生年月日」、「期日」など) については何も伝えません。 )

于 2013-08-07T12:20:40.850 に答える
2

文字列をdate変換してからchar、予想される形式に変換する必要があります

select TO_CHAR(TO_DATE(datecol, 'MM/DD/YYYY'),'YYYY-MM-DD')
from your_table

SQL フィドルのデモ

于 2013-08-07T12:20:45.290 に答える
0
select to_char(TO_DATE("Date", 'MM/DD/YYYY'),'yyyy-mm-dd')
from Table1

SQL フィドル

于 2013-08-07T12:21:33.423 に答える
0

REGEXP_REPLACE 関数を使用して文字列を操作するか、to_date および to_char を使用して文字列を日付に変換し、別の形式で文字列に戻すことができます。

于 2013-08-07T12:21:53.527 に答える