これはかなりシンプルだと確信していますが、私はしばらくそれに固執しています。 SQLでvarcharフィールド(YYYYMM)を日付(MM/01/YY)に変換するにはどうすればよいですか?SQLでvarcharフィールド(YYYYMM)を日付(MM/01/YY)に変換するにはどうすればよいですか?
ありがとうございました。
編集:MySQLではなくOpen Office Base(HSQL)を使用しています。混乱させて申し訳ありません。
これはかなりシンプルだと確信していますが、私はしばらくそれに固執しています。 SQLでvarcharフィールド(YYYYMM)を日付(MM/01/YY)に変換するにはどうすればよいですか?SQLでvarcharフィールド(YYYYMM)を日付(MM/01/YY)に変換するにはどうすればよいですか?
ありがとうございました。
編集:MySQLではなくOpen Office Base(HSQL)を使用しています。混乱させて申し訳ありません。
使用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日'
ゲット年:
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
に変換されます。
str_to_dateとdate_formatの機能を試してください。以下のような何か:
select date_format(str_to_date(my_column, '%Y%c'), '%c/01/%y') from my_table
試してみてください。
SELECT STR_TO_DATE(CONCAT(myDate,'01'),'%Y%m%d')
FROM myTable
を明確にする:あなたはソリューションよりもタイプ日の値にタイプvarchar型/テキストのいくつかの値を変換する方法を探しているなら以下のとおりです。CAST機能を使用して
TO_DATE('201205','YYYYMM')
利用できるようになってTO_DATEを開始
CAST(LEFT('201205',4)||'-'||SUBSTRING('201205' FROM 5 FOR 6)||'-01' AS DATE)
ここでは、docのHyperSQL上で、非常にアンドリューPitonyakによってOO Base guide
をお勧めします