Eyes, JAPAN Blog > MySQLとPostgreSQLの違い:文字列を日付に変換するの巻

MySQLとPostgreSQLの違い:文字列を日付に変換するの巻

shimizu

この記事は1年以上前に書かれたもので、内容が古い可能性がありますのでご注意ください。

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

Comments are closed.