記入日:2023-02-15 編集日:2023-02-15
SQL見るだけクエリ。今回はMySQLのSQLで、DATE_ADD関数を使って、時間値 (間隔) を加算して追加後の日時を取得してみようと思います。
以下のsql_orderテーブルには、注文商品ごとにレコードがインサートされています。
テーブル名:sql_order
id | order_id | name | item_id | price | quantity | size | datetime | status |
---|---|---|---|---|---|---|---|---|
1 | 1 | 伊藤 明日香 | sku-0001 | 3000 | 1 | S | 2022-12-16 07:00:00 | 1 |
2 | 1 | 伊藤 明日香 | sku-0002 | 2500 | 3 | S | 2022-12-16 07:00:00 | 1 |
3 | 1 | 伊藤 明日香 | sku-0003 | 9000 | 1 | S | 2022-12-16 07:00:00 | 1 |
4 | 2 | 原田 和美 | sku-0001 | 3000 | 1 | L | 2022-12-16 10:00:00 | 1 |
5 | 2 | 原田 和美 | sku-0002 | 2500 | 1 | L | 2022-12-16 10:00:00 | 1 |
6 | 2 | 原田 和美 | sku-0003 | 9000 | 2 | L | 2022-12-16 10:00:00 | 1 |
7 | 3 | 高橋 由美子 | sku-0001 | 3000 | 1 | M | 2022-12-16 18:00:00 | 1 |
8 | 3 | 高橋 由美子 | sku-0002 | 2500 | 5 | S | 2022-12-16 18:00:00 | 1 |
9 | 3 | 高橋 由美子 | sku-0003 | 9000 | 1 | M | 2022-12-16 18:00:00 | 1 |
10 | 4 | 田中 明日香 | sku-0001 | 3000 | 1 | S | 2022-12-16 22:00:00 | 1 |
11 | 4 | 田中 明日香 | sku-0002 | 2500 | 1 | S | 2022-12-16 22:00:00 | 1 |
12 | 4 | 田中 明日香 | sku-0003 | 9000 | 2 | S | 2022-12-16 22:00:00 | 1 |
13 | 5 | 小林 美佐子 | sku-0001 | 3000 | 1 | L | 2022-12-17 10:00:00 | 1 |
14 | 5 | 小林 美佐子 | sku-0002 | 2500 | 1 | L | 2022-12-17 10:00:00 | 1 |
15 | 5 | 小林 美佐子 | sku-0003 | 9000 | 2 | L | 2022-12-17 10:00:00 | 1 |
16 | 6 | 渡辺 雄一 | sku-0001 | 3000 | 1 | S | 2022-12-18 08:00:00 | 1 |
17 | 6 | 渡辺 雄一 | sku-0002 | 2500 | 1 | S | 2022-12-18 08:00:00 | 1 |
18 | 6 | 渡辺 雄一 | sku-0003 | 9000 | 1 | S | 2022-12-18 08:00:00 | 1 |
19 | 7 | 佐藤 智子 | sku-0001 | 3000 | 12 | M | 2022-12-18 15:00:00 | 1 |
20 | 7 | 佐藤 智子 | sku-0002 | 2500 | 1 | S | 2022-12-18 15:00:00 | 1 |
21 | 7 | 佐藤 智子 | sku-0003 | 9000 | 1 | M | 2022-12-18 15:00:00 | 1 |
22 | 8 | 坂本 純子 | sku-0001 | 3000 | 1 | S | 2022-12-19 20:00:00 | 1 |
23 | 8 | 坂本 純子 | sku-0002 | 2500 | 1 | S | 2022-12-19 20:00:00 | 1 |
24 | 8 | 坂本 純子 | sku-0003 | 9000 | 3 | S | 2022-12-19 20:00:00 | 1 |
25 | 9 | 加藤 和子 | sku-0001 | 3000 | 1 | L | 2022-12-20 10:00:00 | 1 |
26 | 9 | 加藤 和子 | sku-0002 | 2500 | 8 | L | 2022-12-20 10:00:00 | 1 |
27 | 9 | 加藤 和子 | sku-0003 | 9000 | 1 | L | 2022-12-20 10:00:00 | 1 |
28 | 10 | 山口 晴子 | sku-0001 | 3000 | 1 | M | 2022-12-20 19:00:00 | 1 |
29 | 10 | 山口 晴子 | sku-0002 | 2500 | 1 | L | 2022-12-20 19:00:00 | 1 |
30 | 10 | 山口 晴子 | sku-0003 | 9000 | 3 | L | 2022-12-20 19:00:00 | 1 |
この記事を読むと(約5分)
DATE_ADD関数を使って、日時を、指定時間分追加して取得する方法がわかります。
DATE_ADD関数の基本形は以下になります
DATE_ADD(指定カラム, INTERVAL "0 00:00:00" DAY_SECOND)
さていつもの様に、テーブルの情報を取得するSQLに関して、注目する部分は、以下の9〜11行目です。
SELECT id, name, datetime,
DATE_ADD(datetime, INTERVAL "1 02:30:10" DAY_SECOND) AS add_time
FROM sql_order
datetimeカラムの日時に対して、1日と2時間30分10秒を足した値を取得しています。
ちなみにその他のDATE_ADD関数の例として
以下のような書き方も可能です。
DATE_ADD(指定カラム, INTERVAL "00:00" MINUTE_SECOND)
DATE_ADD(指定カラム, INTERVAL 0 DAY)
DATE_ADD(指定カラム, INTERVAL 0 SECOND)
try { include_once '../model/class.php'; // データベース接続 $database = new Database(); $db = $database->connect(); // SQLを準備し、パラメータをバインドする $query = 'SELECT id, name, datetime, DATE_ADD(datetime, INTERVAL "1 02:30:10" DAY_SECOND) AS add_time FROM sql_order'; $stmt = $db->prepare($query); // 実行する $stmt->execute(); // 結果を取得する $result = $stmt->fetchAll(PDO::FETCH_ASSOC); print_r($result); // データベースから切断する $database->disconnect(); } catch(PDOException $e) { echo $e->getMessage(); }
これを実行すると、二次元連想配列で、取得することができます。
Array ( [0] => Array ( [id] => 1 [name] => 伊藤 明日香 [datetime] => 2022-12-16 07:00:00 [add_time] => 2022-12-17 09:30:10 ) [1] => Array ( [id] => 2 [name] => 伊藤 明日香 [datetime] => 2022-12-16 07:00:00 [add_time] => 2022-12-17 09:30:10 ) [2] => Array ( [id] => 3 [name] => 伊藤 明日香 [datetime] => 2022-12-16 07:00:00 [add_time] => 2022-12-17 09:30:10 ) [3] => Array ( [id] => 4 [name] => 原田 和美 [datetime] => 2022-12-16 10:00:00 [add_time] => 2022-12-17 12:30:10 ) [4] => Array ( [id] => 5 [name] => 原田 和美 [datetime] => 2022-12-16 10:00:00 [add_time] => 2022-12-17 12:30:10 ) [5] => Array ( [id] => 6 [name] => 原田 和美 [datetime] => 2022-12-16 10:00:00 [add_time] => 2022-12-17 12:30:10 ) [6] => Array ( [id] => 7 [name] => 高橋 由美子 [datetime] => 2022-12-16 18:00:00 [add_time] => 2022-12-17 20:30:10 ) [7] => Array ( [id] => 8 [name] => 高橋 由美子 [datetime] => 2022-12-16 18:00:00 [add_time] => 2022-12-17 20:30:10 ) [8] => Array ( [id] => 9 [name] => 高橋 由美子 [datetime] => 2022-12-16 18:00:00 [add_time] => 2022-12-17 20:30:10 ) [9] => Array ( [id] => 10 [name] => 田中 明日香 [datetime] => 2022-12-16 22:00:00 [add_time] => 2022-12-18 00:30:10 ) [10] => Array ( [id] => 11 [name] => 田中 明日香 [datetime] => 2022-12-16 22:00:00 [add_time] => 2022-12-18 00:30:10 ) [11] => Array ( [id] => 12 [name] => 田中 明日香 [datetime] => 2022-12-16 22:00:00 [add_time] => 2022-12-18 00:30:10 ) [12] => Array ( [id] => 13 [name] => 小林 美佐子 [datetime] => 2022-12-17 10:00:00 [add_time] => 2022-12-18 12:30:10 ) [13] => Array ( [id] => 14 [name] => 小林 美佐子 [datetime] => 2022-12-17 10:00:00 [add_time] => 2022-12-18 12:30:10 ) [14] => Array ( [id] => 15 [name] => 小林 美佐子 [datetime] => 2022-12-17 10:00:00 [add_time] => 2022-12-18 12:30:10 ) [15] => Array ( [id] => 16 [name] => 渡辺 雄一 [datetime] => 2022-12-18 08:00:00 [add_time] => 2022-12-19 10:30:10 ) [16] => Array ( [id] => 17 [name] => 渡辺 雄一 [datetime] => 2022-12-18 08:00:00 [add_time] => 2022-12-19 10:30:10 ) [17] => Array ( [id] => 18 [name] => 渡辺 雄一 [datetime] => 2022-12-18 08:00:00 [add_time] => 2022-12-19 10:30:10 ) [18] => Array ( [id] => 19 [name] => 佐藤 智子 [datetime] => 2022-12-18 15:00:00 [add_time] => 2022-12-19 17:30:10 ) [19] => Array ( [id] => 20 [name] => 佐藤 智子 [datetime] => 2022-12-18 15:00:00 [add_time] => 2022-12-19 17:30:10 ) [20] => Array ( [id] => 21 [name] => 佐藤 智子 [datetime] => 2022-12-18 15:00:00 [add_time] => 2022-12-19 17:30:10 ) [21] => Array ( [id] => 22 [name] => 坂本 純子 [datetime] => 2022-12-19 20:00:00 [add_time] => 2022-12-20 22:30:10 ) [22] => Array ( [id] => 23 [name] => 坂本 純子 [datetime] => 2022-12-19 20:00:00 [add_time] => 2022-12-20 22:30:10 ) [23] => Array ( [id] => 24 [name] => 坂本 純子 [datetime] => 2022-12-19 20:00:00 [add_time] => 2022-12-20 22:30:10 ) [24] => Array ( [id] => 25 [name] => 加藤 和子 [datetime] => 2022-12-20 10:00:00 [add_time] => 2022-12-21 12:30:10 ) [25] => Array ( [id] => 26 [name] => 加藤 和子 [datetime] => 2022-12-20 10:00:00 [add_time] => 2022-12-21 12:30:10 ) [26] => Array ( [id] => 27 [name] => 加藤 和子 [datetime] => 2022-12-20 10:00:00 [add_time] => 2022-12-21 12:30:10 ) [27] => Array ( [id] => 28 [name] => 山口 晴子 [datetime] => 2022-12-20 19:00:00 [add_time] => 2022-12-21 21:30:10 ) [28] => Array ( [id] => 29 [name] => 山口 晴子 [datetime] => 2022-12-20 19:00:00 [add_time] => 2022-12-21 21:30:10 ) [29] => Array ( [id] => 30 [name] => 山口 晴子 [datetime] => 2022-12-20 19:00:00 [add_time] => 2022-12-21 21:30:10 ) )
id | name | datetime | add_time |
---|---|---|---|
1 |
伊藤 明日香 |
2022-12-16 07:00:00 |
2022-12-17 09:30:10 |
2 |
伊藤 明日香 |
2022-12-16 07:00:00 |
2022-12-17 09:30:10 |
3 |
伊藤 明日香 |
2022-12-16 07:00:00 |
2022-12-17 09:30:10 |
4 |
原田 和美 |
2022-12-16 10:00:00 |
2022-12-17 12:30:10 |
5 |
原田 和美 |
2022-12-16 10:00:00 |
2022-12-17 12:30:10 |
6 |
原田 和美 |
2022-12-16 10:00:00 |
2022-12-17 12:30:10 |
7 |
高橋 由美子 |
2022-12-16 18:00:00 |
2022-12-17 20:30:10 |
8 |
高橋 由美子 |
2022-12-16 18:00:00 |
2022-12-17 20:30:10 |
9 |
高橋 由美子 |
2022-12-16 18:00:00 |
2022-12-17 20:30:10 |
10 |
田中 明日香 |
2022-12-16 22:00:00 |
2022-12-18 00:30:10 |
11 |
田中 明日香 |
2022-12-16 22:00:00 |
2022-12-18 00:30:10 |
12 |
田中 明日香 |
2022-12-16 22:00:00 |
2022-12-18 00:30:10 |
13 |
小林 美佐子 |
2022-12-17 10:00:00 |
2022-12-18 12:30:10 |
14 |
小林 美佐子 |
2022-12-17 10:00:00 |
2022-12-18 12:30:10 |
15 |
小林 美佐子 |
2022-12-17 10:00:00 |
2022-12-18 12:30:10 |
16 |
渡辺 雄一 |
2022-12-18 08:00:00 |
2022-12-19 10:30:10 |
17 |
渡辺 雄一 |
2022-12-18 08:00:00 |
2022-12-19 10:30:10 |
18 |
渡辺 雄一 |
2022-12-18 08:00:00 |
2022-12-19 10:30:10 |
19 |
佐藤 智子 |
2022-12-18 15:00:00 |
2022-12-19 17:30:10 |
20 |
佐藤 智子 |
2022-12-18 15:00:00 |
2022-12-19 17:30:10 |
21 |
佐藤 智子 |
2022-12-18 15:00:00 |
2022-12-19 17:30:10 |
22 |
坂本 純子 |
2022-12-19 20:00:00 |
2022-12-20 22:30:10 |
23 |
坂本 純子 |
2022-12-19 20:00:00 |
2022-12-20 22:30:10 |
24 |
坂本 純子 |
2022-12-19 20:00:00 |
2022-12-20 22:30:10 |
25 |
加藤 和子 |
2022-12-20 10:00:00 |
2022-12-21 12:30:10 |
26 |
加藤 和子 |
2022-12-20 10:00:00 |
2022-12-21 12:30:10 |
27 |
加藤 和子 |
2022-12-20 10:00:00 |
2022-12-21 12:30:10 |
28 |
山口 晴子 |
2022-12-20 19:00:00 |
2022-12-21 21:30:10 |
29 |
山口 晴子 |
2022-12-20 19:00:00 |
2022-12-21 21:30:10 |
30 |
山口 晴子 |
2022-12-20 19:00:00 |
2022-12-21 21:30:10 |
SQLの使いどころ
サイトに大量の情報を掲載することは、ユーザーにとってとても便利なことです。しかし、情報が多すぎると、目的の情報を見つけるのが困難になります。そのため、SQLを使用することで、情報を効率的に管理することができます。
SQLを使用することで、データベース内の情報を検索したり、フィルタリングしたりすることができます。これにより、ユーザーは目的の情報をスムーズかつ簡単に見つけることができます。
また、SQLを使用することで、データを集計したり、統合したりすることもできます。これにより、ユーザーはさまざまな視点から情報を分析することができます。つまり、サイトに多くの情報を掲載することが重要である一方で、その情報を効率的かつ簡単に管理することが求められる場合には、SQLが不可欠であるといえます。
KK
機械工学を専攻。工業デザイナーとして、国内及び海外の自動車・搬送ラインの設計などに従事した後、2003年にウェブシステム会社を設立。UI設計やウェブシステムの開発、DX化のディレクションなどを行っています。