MySQLで100年後の日時を設定する

RailsでActiveRecordを継承しているオブジェクトのデータ型カラムに対して100年後の日時を設定したい場合、Time.current.since(100.days)を利用することで実現できる。

しかし、Rubyを理解している人以外がデータを更新したい場合に上記は適切ではない。

SQLであれば共通言語になり得るため、プロダクトで利用しているMySQL5.6において実現する方法を調べた。

ドキュメントからADDDATE(date,INTERVAL expr unit)関数を利用すればいいことがわかった。

ADDDATE(NOW(), INTERVAL 100 YEAR)

NOW()は、現在の日付と時間を返す。unit値としては、YEARの他にHOUR、DAY、WEEK、MONTHがある。

参考文献

https://dev.mysql.com/doc/refman/5.6/ja/date-and-time-functions.html

スッキリわかるSQL入門 第2版 ドリル222問付き! (スッキリシリーズ)

スッキリわかるSQL入門 第2版 ドリル222問付き! (スッキリシリーズ)

  • 作者: 中山清喬,飯田理恵子,株式会社フレアリンク
  • 出版社/メーカー: インプレス
  • 発売日: 2018/11/30
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログを見る