MySQLでmm/dd/yyyy形式の日付を挿入する方法【STR_TO_DATE関数の使い方】
MySQLでは、mm/dd/yyyy(月/日/年)形式の日付文字列をそのまま挿入することはできません。このような形式の日付をDATE型のカラムに登録するには、STR_TO_DATE() 関数を使用します。
STR_TO_DATE() の基本構文
insert into yourTableName values(STR_TO_DATE(yourDateValue, yourFormatSpecifier));
第1引数に日付文字列を、第2引数にその形式に対応するフォーマット指定子を渡します。主なフォーマット指定子は以下のとおりです。
%m… 月(2桁)%d… 日(2桁)%Y… 年(4桁)
サンプル:テーブルの作成
まず、日付を格納するためのテーブルを作成します。
mysql> create table DemoTable
(
ShippingDate date
);
Query OK, 0 rows affected (0.81 sec)サンプル:データの挿入
次に、INSERTコマンドを使ってレコードを挿入します。%m-%d-%Y 形式のフォーマット指定子を指定することで、「06-01-2019」のような mm-dd-yyyy 形式の日付文字列を正しくDATE型に変換できます。
mysql> insert into DemoTable values(STR_TO_DATE('06-01-2019', '%m-%d-%Y'));
Query OK, 1 row affected (0.22 sec)
mysql> insert into DemoTable values(STR_TO_DATE('01-31-2019', '%m-%d-%Y'));
Query OK, 1 row affected (0.22 sec)
mysql> insert into DemoTable values(STR_TO_DATE('02-01-2018', '%m-%d-%Y'));
Query OK, 1 row affected (0.27 sec)サンプル:データの確認
SELECT文を実行して、テーブル内のすべてのレコードを表示してみましょう。
mysql> select *from DemoTable;
実行結果
+--------------+ | ShippingDate | +--------------+ | 2019-06-01 | | 2019-01-31 | | 2018-02-01 | +--------------+ 3 rows in set (0.00 sec)
このように、STR_TO_DATE() を使えば、mm/dd/yyyy 形式で入力された日付文字列が MySQL の標準的な YYYY-MM-DD 形式へ自動的に変換されて保存されます。スラッシュ区切りの「06/01/2019」を挿入したい場合は、フォーマット指定子を '%m/%d/%Y' のように区切り文字に合わせて変更すれば対応できます。
-
PHP・MySQLで日付形式をdd/mm/yyyyに変更する方法
PHPやMySQLでは、日付の表示形式を自由に変更できます。本記事では、日付を「dd/mm/yyyy(日/月/年)」形式に変換する方法を、PHPとMySQLそれぞれのケースについて解説します。PHPで日付形式を変更する方法PHPでは、date()関数を使って日付形式を簡単に変更できます。基本構文は以下の通りです。date(d/m/Y, 日時の変数);また、文字列を日付として扱う場合は、strtotime()関数を使用します。この関数は、日付を表す文字列をUnixタイムスタンプに変換してくれるため、date()関数と組み合わせて使うのが一般的です。以下は、日時を「dd/mm/yyyy」形式に整形
-
Javaで文字列から日付を解析する方法:SimpleDateFormatを使った日付フォーマットの変換
Javaでは、java.textパッケージに含まれるSimpleDateFormatクラスを使用することで、日付を任意の形式(ロケール対応)でフォーマットしたり、文字列から解析(パース)したりすることができます。このクラスのコンストラクタの一つは、希望する日付フォーマットを表すString型の値を受け取り、SimpleDateFormatオブジェクトを生成します。また、このクラスが提供するformat()メソッドは、java.util.Dateオブジェクトを引数として受け取り、現在のオブジェクトが表すフォーマットに従った日付・時刻の文字列を返します。日付文字列を別のフォーマットに変換する手順入