記入日:2023-02-08 編集日:2023-02-08
SQL見るだけクエリ。今回はデータとして保存されている日付データから、DATE_ADD関数を使って、1ヶ月前、1ヶ月後を取得してみようと思います。契約期限の1ヶ月前に、お知らせのメールを送る際のデータ取得などに使えますね。
この記事を読むと(約3分)
保存されている日付データを起点に、1ヶ月前、1ヶ月後など、保存日以外の日付を取得する事が出来ます。10日前や10日後、1週間前や1週間後なども同じような考えで取得可能です。
以下のような、日付(date)データをもつ、記事投稿テーブルを用意しました。
テーブル名:sample_note
| id | tittle | date | member_id | line | status |
|---|---|---|---|---|---|
| 1 | AAAAA | 2022-12-26 | 1 | 50 | 1 |
| 2 | BBBBB | 2022-12-27 | 2 | 50 | 1 |
| 3 | CCCCC | 2022-12-28 | 3 | 50 | 1 |
| 4 | DDDDD | 2022-12-29 | 50 | 0 | |
| 5 | EEEEE | 2022-12-30 | 1 | 50 | 1 |
以下のコードは、dataカラムに入っている日付の1ヶ月後をDATE_ADD関数によって取得しているSQLです。いつもの様に、ポイントは、9行目のみです。
SELECT *, DATE_ADD(date, INTERVAL 1 MONTH) AS date2 FROM sample_note この部分で、データベースの全てのレコードと、DATE_ADD関数によって導かれた1ヶ月後の日付(date2)を取得しております。
ちなみに、1ヶ月前を取得する場合は、DATE_ADD(date, INTERVAL -1 MONTH) になります。
try {
include_once '../model/class.php';
// データベース接続
$database = new Database();
$db = $database->connect();
// SQLを準備し、パラメータをバインドする
$query = 'SELECT *, DATE_ADD(date, INTERVAL 1 MONTH) AS date2 FROM sample_note';
$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
[tittle] => AAAAA
[date] => 2022-12-26
[member_id] => 1
[line] => 50
[status] => 1
[date2] => 2023-01-26
)
[1] => Array
(
[id] => 2
[tittle] => BBBBB
[date] => 2022-12-27
[member_id] => 2
[line] => 50
[status] => 1
[date2] => 2023-01-27
)
[2] => Array
(
[id] => 3
[tittle] => CCCCC
[date] => 2022-12-28
[member_id] => 3
[line] => 50
[status] => 1
[date2] => 2023-01-28
)
[3] => Array
(
[id] => 4
[tittle] => DDDDD
[date] => 2022-12-29
[member_id] =>
[line] => 50
[status] => 0
[date2] => 2023-01-29
)
[4] => Array
(
[id] => 5
[tittle] => EEEEE
[date] => 2022-12-30
[member_id] => 1
[line] => 50
[status] => 1
[date2] => 2023-01-30
)
)
見やすくする為に、HTMLとCSSで体裁を整え、1ヶ月後を追加で表示しました。
| id | tittle | date | 1ヶ月後 |
|---|---|---|---|
| 1 | AAAAA |
2022-12-26 |
2023-01-26 |
| 2 | BBBBB |
2022-12-27 |
2023-01-27 |
| 3 | CCCCC |
2022-12-28 |
2023-01-28 |
| 4 | DDDDD |
2022-12-29 |
2023-01-29 |
| 5 | EEEEE |
2022-12-30 |
2023-01-30 |
SQLの使いどころ
サイトに大量の情報を掲載することは、ユーザーにとってとても便利なことです。しかし、情報が多すぎると、目的の情報を見つけるのが困難になります。そのため、SQLを使用することで、情報を効率的に管理することができます。
SQLを使用することで、データベース内の情報を検索したり、フィルタリングしたりすることができます。これにより、ユーザーは目的の情報をスムーズかつ簡単に見つけることができます。
また、SQLを使用することで、データを集計したり、統合したりすることもできます。これにより、ユーザーはさまざまな視点から情報を分析することができます。つまり、サイトに多くの情報を掲載することが重要である一方で、その情報を効率的かつ簡単に管理することが求められる場合には、SQLが不可欠であるといえます。
KK
機械工学を専攻。工業デザイナーとして、国内及び海外の自動車・搬送ラインの設計などに従事した後、2003年にウェブシステム会社を設立。UI設計やウェブシステムの開発、DX化のディレクションなどを行っています。