/ / Datownik MySQL zwraca jako datetime, a nie integer - mysql, sql, timestamp

Datownik MySQL zwraca jako datetime, a nie integer - mysql, sql, timestamp

Mam tabelę MySQL, gdzie kolumna _update jest timestamp rodzaj. Mam problem i nie rozumiem, dlaczego kiedy wybieram tę kolumnę, czy zwracam w formacie datetime, a nie w liczbie całkowitej? W JavaScript Uniksowy znacznik czasu jest zwracany jako liczba całkowita, w PHP czas () jest liczbą całkowitą, ale w MySQL jest to datetime? Czemu?

Wiem, że mogę używać typu bigint, ale chcędodać sygnaturę czasową do wiersza, wstawić dane z phpmyadmin i zaktualizować znacznik czasu, gdy dane są aktualizowane (można to ustawić tylko w kolumnie typu znacznika czasowego).

Odpowiedzi:

0 dla odpowiedzi № 1

Domyślam się, że wątpliwość wynika z błędnego założenia, że znak czasu zawsze odnosi się do Czas Unix. Jednak jest to dość ogólne angielskie słowo, które jest powszechnie stosowane w IT w sposób uczciwy różne koncepcje związane z czasem.

W przypadku MySQL TIMESTAMP typ kolumny, podczas gdy prawdą jest, że jest przechowywany wewnętrznie jako znacznik czasu Uniksa:

TIMESTAMP wartości są przechowywane jako liczba sekund od epoki ("1970-01-01 00:00:00" UTC).

... taki szczegół jest w większości nieistotny (jak większość wewnętrznych reprezentacji), ponieważ interfejs jest taki sam jak każdy inny typ daty: ciąg znaków w stałym formacie czytelnym dla człowieka, np .:

"2038-01-19 03:14:07.999999"

I, podobnie jak w każdym innym typie kolumny daty, masz odpowiednie funkcje do konwertowania z / na ciąg, gdy masz / potrzebujesz inny format ciągu znaków: