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 № 1Domyś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: