クマの手も借りたい
茶トラネコ(@kumanotemo)です。上場を控えたITベンチャーを2社も退職してフリーランスの道を選んだ放浪エンジニアです。
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 |
+--------------------------------------------------------+------+
現場のプロから学ぶSEO技術

SEO について詳しくないけどこれから学んでみたい方。

これまでの小手先の SEO に対する技術には詳しいけど、マーケティングやソーシャル要素を組み合わせた今時の SEO をもう一度勉強してみたい方にオススメです。

あなたにオススメ