mySQL timeデータ型を探しています。http://dev.mysql.com/doc/refman/5.6/en/time.html
Microsoft SQL Server(2008/2012) も時間データ型を提供します。http://msdn.microsoft.com/en-us/library/bb677243.aspx
どちらも、時間を「HH:MM:SS」形式で保存できます。それらは比較可能です。(MS SQL の場合、範囲は 00:00:00.0000000 から 23:59:59.9999999 です)
組み込みのデータ型を使用できない場合は、いくつかの関数を記述して、hh:mm から int に変換し、再び元に戻すことができます。
function HourMinuteSecToDecimal($hour_minute_sec) {
$t = explode(':', $hour_minute_sec);
return $t[0] * 60 + $t[1] * 60 + $t[2];
}
echo HourMinuteSecToDecimal("23:30:25");
return 3205
function DecimaltoHourMinuteSec($sec, $padHours = false) {
$hms = "";
$hours = intval(intval($sec) / 3600);
$hms .= ($padHours) ? str_pad($hours, 2, "0", STR_PAD_LEFT) . ':' : $hours . ':';
$minutes = intval(($sec / 60) % 60);
$hms .= str_pad($minutes, 2, "0", STR_PAD_LEFT) . ':';
$seconds = intval($sec % 60);
$hms .= str_pad($seconds, 2, "0", STR_PAD_LEFT);
echo $hms;
}
echo DecimaltoHourMinuteSec(3205);
return 23:30:25