sql >> データベース >  >> RDS >> Mysql

MySQLのTIME値の制限である838:59:59を超えています

    作業した合計秒数を取得し、アプリケーションのプレゼンテーション層で必要に応じて時間/分に変換します(結局のところ、60で割る単純なケースです):

    <?
      $dbh = new PDO("mysql:dbname=$dbname", $username, $password);
      $dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, FALSE);
    
      $qry = $dbh->prepare('
        SELECT SUM(TIME_TO_SEC(entry_end_time)-TIME_TO_SEC(entry_start_time))
        FROM   entry 
        WHERE  entry_date BETWEEN :start_date AND :end_date
           AND user_id = :user_id
      ');
    
      $qry->execute([
        ':start_date' => '2012-01-01',
        ':end_date'   => '2012-12-31',
        ':user_id'    => 3
      ]);
    
      list ($totalMins, $remngSecs) = gmp_div_qr($qry->fetchColumn(), 60);
      list ($totalHour, $remngMins) = gmp_div_qr($totalMins, 60);
    
      echo "Worked a total of $totalHour:$remngMins:$remngSecs.";
    ?>
    


    1. Oracleで値に少なくとも1桁の数字が含まれているかどうかを検出する

    2. さまざまなデータソースに対して読み取り/書き込みを行うようにHibernateを設定するにはどうすればよいですか?

    3. php.iniでoci8(Oracle)の拡張機能を有効にする方法-PHP警告:PHPスタートアップ:行0の不明

    4. SELECTINでOracleパラメータを使用する際の問題