2016-11-03 17 views
0

varcharを日付に変換しようとすると、返されるNull値が返されます。str_to_dateはnull + mysqlを返します

私のカラムには05-MAR-2015という値があります。

私は次のクエリを実行しています。

select STR_TO_DATE('n.Invoice_date','%d-%c-Y') from table n; 

上記のクエリを実行すると、null値が返されます。

日付形式で新しい列を導入したいと考えています。

+2

あなたはY' '前に'% 'を忘れてしまったとformattorは '%D-%B-%Y'' –

+0

あなたの文字列の形式が正確に何である'でなければなりませんInvoice_date? –

答えて

1

リテラル文字列'n.invoice_date'は有効な日付ではありません。あなたが意味することは次のとおりです。

SELECT STR_TO_DATE(n.invoice_date, '%d-%b-%Y') FROM TABLE n 
+0

MYSQLで 'SELECT STR_TO_DATE('05 -MAR-2015 '、'%d-%c-%Y ');'を実行しようとしましたが、これは動作しません。多分それは有効な日付ではありませんか? – rbr94

+0

あなたの返事をありがとう。はい。それで合っています。そこにエイリアスが必要なのでしょうか? – user2663104

+0

'n.'部分は省略できます。 – tadman

0

あなたのエラーは、日付を取得するために%c代わりの%bの使用です。日付の書式と日付値の作成を混在させました。これはそれを行う必要があります。ここでは、まず、それがフィールドに格納されている形式と一致している必要がありSTR_TO_DATEとのデートを作成2015年5月3日

:これは、その結果

SELECT DATE_FORMAT(STR_TO_DATE(n.invoice_date,'%d-%b-%Y'), '%d-%c-%Y') FROM table n; 

。その後、あなたはしたい方法でDATE_FORMATでそれをフォーマットすることができます。

は、より多くの情報のためにMYSQLドキュメントを参照してください:http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format

+0

ありがとうございます。私は次のクエリを使用しました - dw.spend_nordicからSELECT str_to_date(lower(Invoice_date)、 '%d-%b-%Y'); – user2663104

関連する問題