LoginSignup
2
1

More than 5 years have passed since last update.

24時間以内かどうかで書き込む内容を変える

Posted at

データベースに保管されているタイムスタンプが現在時刻の24時間以内かどうかを調べ、
24時間以内なら現在時刻、
そうでなかったら保管されているタイムスタンプの24時間後の時間を
書き込むSQL文。

24h.sql
update timelog set out_timestamp = 
(select if(now() > (in_timestamp + interval 24 hour), in_timestamp + interval 24 hour, now())
where …

たぶんこれで大丈夫。
24 hourのところは1 dayでもいいのかな?未確認。)

MySQL :: MySQL 5.1 リファレンスマニュアル :: 11.2 制御フロー関数 - http://dev.mysql.com/doc/refman/5.1/ja/control-flow-functions.html

IF(expr1,expr2,expr3)
expr1 が TRUE である場合は ( expr1 <> 0 および expr1 <> NULL ) 、IF() は expr2 を戻します。それ以外では、expr3 を戻します。IF() は、使用されている文脈によって、数値値もしくはストリング値を戻します。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1