SQLデータベースからdatetime型のデータを一致条件でとりだす

SQLデータベースから現在時(秒切り捨て)にマッチする情報を取り出す方法を記します.
データ型はdatetimeで, 年-月-日 時:分:秒の情報が格納されているのもとします.

どうしても上手くいかず長時間つまずいた内容なので備忘録としてメモ.

やりたかったことは, 「cronで適時実行されるphpファイルによってその時間に一致するレコードを見つけ, レコードが存在する場合はデータを取得してTwitterbotからリプライを飛ばす」というものでした.

いろいろと調べて完成したのが以下のコード.

//現在時にマッチする通知を取得
$today = date_default_timezone_set(‘Asia/Tokyo’);
$nowtime = date(‘Y-m-d H:i’);
$rs = mysql_query(“select * from [テーブル名] where date_format([検索対象], ‘%Y-%m-%d %H:%i’) = ‘$nowtime’);

//配列にデータを格納(以下データの取り扱いを行うコードが続く….)
while($row = mysql_fetch_assoc($rs)){
$mentions[] = $row;
}

data_formatを指定してやることが大事だったようです.

現在時と照合する場合でなくても$nowtimeの部分に直接’2012-01-28 10:20′などといった文字列を入力することで, その時刻に合うデータを取り出すことができます.

同じところでつまずいている方がおられましたらお役に立てれば幸いです.

■関連記事:

Comments are closed.