開発
2013/10/10
MySQLとPostgreSQLの違い:文字列を日付に変換するの巻
shimizu
MySQLとPostgreSQLとでは、問い合わせ言語としてどちらもSQLを採用しているとはいえ、同じことをやろうとしても「方言」と呼ぶべき書き方の違いがあります。今日は「文字列を任意の形式で日付として解釈する」際の違いについて紹介します。
例えば、文字列型の「年」「月」「日」が別の列に入っており、それを結合して日付の値として扱いたいときに役に立ちます。
MySQLの場合
STR_TO_DATE関数を使います。第1引数に対象の文字列、第2引数に日付フォーマットを指定します。
-- 例: SELECT STR_TO_DATE('2013/10/10','%Y/%m/%d'); -- 結果: +--------------------------------------+ | STR_TO_DATE('2013/10/10','%Y/%m/%d') | +--------------------------------------+ | 2013-10-10 | +--------------------------------------+
PostgreSQLの場合
TO_DATE関数を使います。第1引数に対象の文字列、第2引数に日付フォーマットを指定します。
-- 例: SELECT TO_DATE('2013/10/10', 'YYYY/MM/DD'); -- 結果: to_date ------------ 2013-10-10
関数名だけでなく、日付フォーマットの書式が両者で異なるので、ご注意ください。
出典元:MySQL STR_TO_DATE Function – Features, Examples and Equivalents – SQLines