MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLのSTR_TO_DATE()関数で取得した日付に日数を追加するにはどうすればよいですか?

MySQLでは、STR_TO_DATE()関数で変換した日付に日数を追加したい場合、DATE_ADD()関数を組み合わせることで簡単に実現できます。ここでは、実際にテーブルを作成し、日付文字列に日数を加算するまでの手順を順番に解説します。

1. サンプルテーブルの作成

まず、出荷日を格納するためのテーブルを作成しましょう。

mysql> create table DemoTable
    -> (
    -> ShippingDate varchar(100)
    -> );
Query OK, 0 rows affected (0.67 sec)

2. レコードの挿入

次に、INSERT文を使ってテーブルにいくつかのレコードを挿入します。

mysql> insert into DemoTable values('06-01-2019');
Query OK, 1 row affected (0.15 sec)

mysql> insert into DemoTable values('01-04-2017');
Query OK, 1 row affected (0.19 sec)

mysql> insert into DemoTable values('29-06-2019');
Query OK, 1 row affected (0.47 sec)

3. レコードの確認

SELECT文を実行して、テーブル内のすべてのレコードを表示してみましょう。

mysql> select *from DemoTable;

出力結果

+--------------+
| ShippingDate |
+--------------+
| 06-01-2019   |
| 01-04-2017   |
| 29-06-2019   |
+--------------+
3 rows in set (0.00 sec)

4. STR_TO_DATE()で変換した日付に日数を追加するクエリ

以下が、STR_TO_DATE()関数で文字列を日付に変換したうえで、そこへ日数を追加するクエリです。この例では6日間を加算しています。

mysql> select date_add(str_to_date(ShippingDate,'%d-%m-%Y'),interval 6 day) as newShippingDate from DemoTable;

出力結果

+-----------------+
| newShippingDate |
+-----------------+
| 2019-01-12      |
| 2017-04-07      |
| 2019-07-05      |
+-----------------+
3 rows in set (0.00 sec)

クエリの仕組み

STR_TO_DATE(ShippingDate,'%d-%m-%Y')は、「日-月-年」形式の文字列をDATE型に変換します。その結果に対してDATE_ADD()INTERVAL 6 DAY(6日間)を加算しているのです。出力結果を見ると、「06-01-2019」→「2019-01-12」、「01-04-2017」→「2017-04-07」、「29-06-2019」→「2019-07-05」と、正しく6日後の日付が表示されていることが確認できます。

ポイント: INTERVALの数値や単位(DAY、MONTH、YEARなど)を変更すれば、日だけでなく月単位・年単位の日付計算にも柔軟に対応できます。

  1. MySQLでDATETIME型の日時に日数を追加する方法

    MySQLでは、DATE_ADD()関数を使うことで、DATETIME型の値に指定した日数を簡単に追加できます。この記事では、実際にテーブルを作成し、日時フィールドに日数を加算するまでの手順を具体例とともに解説します。 1. テーブルの作成 まず、DATETIME型のカラムを持つテーブルを作成します。 mysql> create table DemoTable1871     (     ArrivalDate datetime     ); Query OK, 0

  2. MySQLで現在の日付に11日を追加する方法【DATE_ADD関数の使い方】

    はじめにMySQLでは、DATE_ADD()関数を使うことで、日付に指定した日数を簡単に加算できます。本記事では、現在の日付(CURDATE())に11日を追加する方法を、テーブル作成からクエリ実行まで具体的な例を交えて解説します。サンプルテーブルの作成まず、デモ用のテーブルを作成しましょう。mysql> create table DemoTable1994 ( ArrivalDate date ); Query OK, 0 rows affected (5.33 sec)テストデータの挿入続いて、INSERTコマンドを使用してテーブルに複数のレコードを挿入します。mysql&g