2011-07-05 6 views
2

これはかなりシンプルだと確信していますが、私はしばらくそれに固執しています。 SQLでvarcharフィールド(YYYYMM)を日付(MM/01/YY)に変換するにはどうすればよいですか?SQLでvarcharフィールド(YYYYMM)を日付(MM/01/YY)に変換するにはどうすればよいですか?

ありがとうございました。

編集:MySQLではなくOpen Office Base(HSQL)を使用しています。混乱させて申し訳ありません。

答えて

3

使用STR_TO_DATE:mysql.comから

STR_TO_DATE(STR、フォーマット)

これはDATE_FORMAT()関数の逆数です。文字列strと書式文字列形式をとります。 STR_TO_DATE()は、書式文字列に日付と時刻の両方の部分が含まれる場合はDATETIME値を返し、文字列に日付または時刻部分のみが含まれる場合はDATEまたはTIME値を返します。

strに含まれる日付、時刻、または日付時刻の値は、formatで指定された形式で指定する必要があります。書式で使用できる指定子については、DATE_FORMAT()関数の説明を参照してください。 strに不正な日付、時刻、または日付時刻の値が含まれている場合、STR_TO_DATE()はNULLを返します。 MySQL 5.0.3以降、不正な値も警告を生成します。

日付の値の範囲の範囲チェックは、11.3.1項「DATETIME、DATE、およびTIMESTAMPタイプ」で説明されています。これは、たとえば、SQLモードがそのような値を禁止するように設定されていない限り、部分値が0の「ゼロ」日付または日付が許可されることを意味します。

mysql> SELECT STR_TO_DATE('00/00/0000 '、'%m /%d /%Y ');
- > '0000-00-00'
mysql> SELECT STR_TO_DATE('04/31/2004 '、'%m /%d /%Y ');
- > '2004年4月31日'

1
  • ゲット年:

    SUBSTRING(field FROM -2 FOR 2) 
    
  • は日付を作曲:

    SUBSTRING(field FROM 2 FOR 2) 
    
  • は月をゲット

    CONCAT(SUBSTRING(field FROM -2 FOR 2), '/01/', SUBSTRING(field FROM 2 FOR 2)) 
    

これはYYYYMMからMM/01/YYに変換されます。

3

str_to_datedate_formatの機能を試してください。以下のような何か:

select date_format(str_to_date(my_column, '%Y%c'), '%c/01/%y') from my_table 
3

試してみてください。

SELECT STR_TO_DATE(CONCAT(myDate,'01'),'%Y%m%d') 
FROM myTable 
1

を明確にする:あなたはソリューションよりもタイプの値にタイプvarchar型/テキストのいくつかの値を変換する方法を探しているなら以下のとおりです。CAST機能を使用して

  1. OpenOfficeの3.4(HSQLDB 2.xの)新しいOracleのような関数から書かれた以外に

TO_DATE('201205','YYYYMM')

利用できるようになってTO_DATEを開始

CAST(LEFT('201205',4)||'-'||SUBSTRING('201205' FROM 5 FOR 6)||'-01' AS DATE)

  1. ANSI/ISO 'YYYY-MM-DD'フォーマットの文字列を作成することもできます - Baseはそれを認識し、必要に応じて日付の型にそれを変換します。日付入力されたコラムなどにINGの INSERT

    ここでは、docのHyperSQL上で、非常にアンドリューPitonyakによってOO Base guide

    をお勧めします
関連する問題