Nie. DateTime
wartości powinny być przechowywane jako DateTime
, chyba że masz naprawdę dobry powód, aby przechowywać je w inny sposób (np. w celu obsługi wartości daty i czasu poza wartościami min/max DateTime
), sugerowałbym pozostawienie go w DateTime
kolumna.
Zawsze możesz manipulować sposobem zwracania ich z bazy danych podczas Select
lub w warstwie prezentacji. Aby zwrócić czas uniksowy z DateTime
, MySql zapewnia wbudowaną metodę o nazwie UNIX_TIMESTAMP
. Aby zwrócić liczbę milisekund, po prostu pomnóż przez 1000, ponieważ uniksowy znacznik czasu to liczba sekund od 1 stycznia 1970 (nie licząc sekund przestępnych). Jeśli chcesz przechowywać czas uniksowy, będziesz musiał użyć typu danych int.
Pamiętaj, że jeśli przechowujesz czas uniksowy zamiast przechowywać rzeczywisty DateTime
wartość w DateTime
kolumna typu danych, stracisz możliwość łatwego korzystania ze wszystkich funkcji datetime wbudowanych w bazę danych. Na przykład, jeśli chcesz dowiedzieć się, ile wierszy należy do konkretnego miesiąca, musisz najpierw przetłumaczyć dane z int na datetime i dopiero wtedy będziesz mógł to obliczyć.
Stracisz również dokładność (ponieważ czas unixowy jest niedokładny nawet przy rozdzielczości 1 sekundy, ponieważ ignoruje sekundy przestępne).
Podsumowując - gdy baza danych oferuje typ danych, który pasuje do danych, nie przechowuj tych danych przy użyciu innego typu danych. użyj Date
typ danych, jeśli chcesz przechowywać tylko daty, DateTime
typ danych, jeśli chcesz przechowywać wartości daty i godziny oraz Time
typ danych, jeśli chcesz przechowywać określoną godzinę w ciągu dnia.
PS
Jeśli masz do czynienia z wartościami dat i godzin, zwłaszcza jeśli masz do czynienia z klientami z wielu lokalizacji, ZAWSZE przechowuj w bazie danych tylko czas UTC, o ile oczywiście nie chcesz oszaleć.