Czy istnieje funkcja MySQL, której można użyć do przekształcenia uniksowego znacznika czasu w datę czytelną dla człowieka? Mam jedno pole, w którym zapisuję czasy uniksowe, a teraz chcę dodać kolejne pole dla dat czytelnych dla ludzi.
mysql
unix-timestamp
Król Julien
źródło
źródło
Odpowiedzi:
Użyj
FROM_UNIXTIME()
:Zobacz także: Dokumentacja MySQL na
FROM_UNIXTIME()
.źródło
from_unixtime
: dev.mysql.com/doc/refman/5.1/en/…TO_UNIXTIME
, ale zamiast tegoUNIX_TIMESTAMP
.Czego brakuje w innych odpowiedziach (jak na ten tekst) i nie jest bezpośrednio oczywiste, że
from_unixtime
można wziąć drugi parametr, aby określić format tak:źródło
Myślę, że to, czego szukasz
FROM_UNIXTIME()
źródło
Potrzebujesz uniksowego znacznika czasu w określonej strefie czasowej?
Oto jeden linijka, jeśli masz szybki dostęp do mysql cli:
Zamień
'MST'
na żądaną strefę czasową. Mieszkam w Arizonie 🌵 więc konwersja z UTC do MST.źródło
Po co zawracać sobie głowę zapisywaniem pola jako czytelnego? Tylko my
AS
EDYCJA: Przepraszamy, przechowujemy wszystko w milisekundach, a nie sekundach. Naprawione.
źródło
Możesz użyć funkcji DATE_FORMAT. Oto strona z przykładami i wzorami, których możesz użyć, aby wybrać różne składniki daty.
źródło
Łatwy i prosty sposób:
select from_unixtime(column_name, '%Y-%m-%d') from table_name
źródło
Ponieważ nie zauważyłem tego pytania, mysql zawsze przechowuje czas w polach znaczników czasu w UTC, ale wyświetla (np. Phpmyadmin) w lokalnej strefie czasowej, chciałbym dodać moje ustalenia.
Mam automatycznie aktualizowane pole last_modified, zdefiniowane jako:
Patrząc na to z phpmyadminem, wygląda na to, że jest w czasie lokalnym, wewnętrznie jest to UTC
W dowolnej konstelacji UNIX_TIMESTAMP i „as UTC” są zawsze wyświetlane w czasie UTC.
Uruchom to dwukrotnie, najpierw bez ustawiania strefy czasowej.
źródło