Pole TIME w MySQL bez sekund | DailyWeb.pl - codziennie o sieci

Pole TIME w MySQL bez sekund

Opublikowano 7 lat temu -


Standardowo jest kilka typów pól w bazie MySQL do przechowywania wartości czasu. Nas najbardziej interesować będzie typ TIME, który przechowuje wartość czasu w formacie HH:MM:SS (tj. godzina:minuta:sekunda). Jeśli dodamy wpis do bazy w pole o tym typie oczywistym jest, że nasz czas będzie wyglądał w ten sposób, np. 23:15:15. Jednak co w wypadku kiedy wartość sekund nie jest nam potrzebna a niezbędna jest tylko godzina i minuta. Dedykowanego pola które przechowywało by te dwie wartości nie ma, więc będzie trzeba w tej sytuacji wymyślić coś na własną rękę. Pierwsza myśl, która przychodzi na myśl to utworzenie pola typu VARCHAR i wpisywanie tej wartości jako ciągu znaków.

To rozwiązanie oczywiście nie jest dobrym pomysłem. Dlaczego? Chociażby dlatego, że później nie będziemy mogli wykorzystać funkcji do działania na datach, tylko na stringach co mocno komplikuje sprawę.
Najwygodniej będzie zostawić te pole w formacie daty, minuty, sekundy - jednak wyświetlać wartości tylko i wyłącznie godzin i minut. Jak to zrobić?

$czas_bez_sekund = substr($czas_bez_sekund, 0, strlen($czas_bez_sekund)-3);

Przykład

 $czas_bez_sekund = 23:15:15;
$czas_bez_sekund = substr($czas_bez_sekund, 0, strlen($czas_bez_sekund)-3);
// zwróci wartość 23:15