Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]Dziwne zachowanie time_to_sec
Forum PHP.pl > Forum > Przedszkole
jacusek
Witam.
Mam tabelę w mysql:
  1. CREATE TABLE `nadgodziny` (
  2. `id_nad` SMALLINT(6) NOT NULL AUTO_INCREMENT,
  3. `id_prac` VARCHAR(2) NULL DEFAULT NULL,
  4. `data_pocz` DATETIME NOT NULL,
  5. `data_kon` DATETIME NOT NULL,
  6. `id_lek` VARCHAR(5) NULL DEFAULT NULL,
  7. PRIMARY KEY (`id_nad`)
  8. )
  9. COLLATE='utf8_general_ci'
  10. ENGINE=InnoDB

Najistotniejsze są kolumny data_pocz i data_kon.
Większość dat zaczyna się w dzień powszedni o 20:00 - czyli zapis wygląda następująco '2010-02-01 20:00' i kończy powiedzmy '2010-02-01 21:20'
Kiedy zadaję następujące pytanie
  1. SELECT date_format(data_pocz,'%Y-%m-%d') AS DATA,
  2. floor((time_to_sec(data_kon-data_pocz))/3600) AS godziny,
  3. round((time_to_sec(data_kon-data_pocz)/60),0)%60 AS minuty
  4. FROM nadgodziny
  5. WHERE id_prac IS NOT NULL GROUP BY 1;

to wszystko działa do momentu kiedy w tabeli mam sobotę i np takie wartości
'2010-03-13 08:45' '2010-03-13 08:45' Tutaj kompletnie wariuje albo pokazuje null, albo nie liczy drugiej kolumny. Kombinowałem już z takimi opcjami żeby zmienić zapis na taką formę
  1. (time_to_sec(data_kon)-time_to_sec(data_pocz)/60)
ale to niestety też nie pomaga.
jacusek
dzięki. Naprowadziłeś mnie choć w moim przypadku bardziej przydało się timediff().
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.