開発
                      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
 
                             2024/12/06
                  2024/12/06 2024/09/13
                  2024/09/13 2024/05/17
                  2024/05/17 2024/05/10
                                    2024/05/10 2024/01/05
                  2024/01/05 2023/08/18
                  2023/08/18 2023/07/14
                  2023/07/14 2023/05/12
                  2023/05/12