クマの手も借りたい
馬とテニスとリラックマが好きな IT 系のエンジニアです。
Linux

MySQLで日付の差を求める

MySQL には日付関数が多く存在しますが、今回はプロテニス大会の開催日程データの中から、7 日以内に終了したデータを取得したかったので DATEDIFF() を使いました。

DATEDIFF(expr1, expr2)

DATEDIFF() は、ある日付から別の日付までの日数の値として表現された expr1 − expr2 を返します。expr1 および expr2 は、日付または日付時間式です。値の日付部分のみが計算に使用されます。

DATEDIFFの実行

実際に日付の差を求めてみます。

SELECT
  game_name,
  DATEDIFF(CURRENT_DATE(), end_date) as days
FROM
  [テーブル名]
WHERE
  DATEDIFF(CURRENT_DATE(), end_date) > 0
  AND DATEDIFF(CURRENT_DATE(), end_date) < 7;

未来の大会を除外するために 0 より大きくて、7 よりも小さい日付差を取得するようにしています。

+--------------------------------------------------------+------+
| game_name                                              | days |
+--------------------------------------------------------+------+
| BNLイタリア国際男子                                    |    1 |
| ムチュア・マドリード・オープン男子                     |    8 |
| ロレックス・モンテカルロ・マスターズ                   |   29 |
| マイアミ・オープン男子                                 |   50 |
| BNPパリバ・オープン男子                                |   64 |
| 全豪オープン                                           |  113 |
| ロレックス・パリマスターズ                             |  197 |
| 上海ロレックスマスターズ                               |  218 |
| 楽天ジャパンオープン                                   |  225 |
+--------------------------------------------------------+------+
Web API The Good Parts

オライリーの「Web API」に特化した本です。最近の多くの Web サービスは API が活用されていますが、その技術はこれまでの Web サイトとそれほど大きく変わりません。

今後、マイクロサービス化が進む中で知っておいて損はない内容が詰め込まれており、現場のエンジニアやこれから Web 系のエンジニアを目指す人にもオススメの一冊です。

created by Rinker
¥2,376
(2018/09/19 11:51:22時点 Amazon調べ-詳細)

あなたにオススメ