Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Przekroczenie limitu wartości TIME w MySQL, który wynosi 838:59:59

Po prostu pobierałbym całkowitą liczbę przepracowanych sekund i konwertował na godziny/minuty zgodnie z wymaganiami w warstwie prezentacji mojej aplikacji (w końcu jest to prosty przypadek dzielenia przez 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL zwiększa zmienną użytkownika, gdy zmienia się wartość

  2. Dlaczego java.sql.DriverManager.getConnection(...) zawiesza się?

  3. Określanie, czy indeks tabeli MySQL istnieje przed utworzeniem

  4. Zwróć tylko wiersze, których maksymalna wartość jest mniejsza niż określona

  5. Czy ignoruje opcję funkcji jdbc Pyspark DataFrameWriter ignoruje całą transakcję, czy tylko naruszające wiersze?