Jak przekonwertować 1300464000na 2011-03-18 16:00:00w MySQL?
Jak przekonwertować 1300464000na 2011-03-18 16:00:00w MySQL?
Odpowiedzi:
Użyj FROM_UNIXTIME()funkcji w MySQL
Pamiętaj, że jeśli używasz frameworka, który przechowuje go w milisekundach (na przykład znacznik czasu Javy), musisz podzielić przez 1000, aby uzyskać właściwy czas uniksowy w sekundach.
SELECT from_unixtime( TIMESTAMP( "2011-12-01", "22:01:23.048" ) )nie działa. czemu? używając wersji 5.6
SELECT from_unixtime( unix_timestamp(TIMESTAMP( "2011-12-01", "22:01:23.048" ) ) )działa. TIMESTAMP()nie zwraca wartości całkowitej.
DATE_FORMAT(FROM_UNIXTIME(`orderdate`), '%Y-%m-%d %H:%i:%s') as "Date" FROM `orders`
To najlepsze rozwiązanie, jeśli podana data jest zakodowana w formacie 1300464000
DATE_FORMAT(FROM_UNIXTIME(`orderdate`), '%d-%m-%Y %H:%i:%s') as "Date" FROM `orders`
orderdate), '% Y-% m-% d') jako „Data” FROM ordersbędzie ostatecznym rozwiązaniem: D
Aby odpowiedzieć na komentarz Janusa Troelsena
Użyj UNIX_TIMESTAMP zamiast TIMESTAMP
SELECT from_unixtime( UNIX_TIMESTAMP( "2011-12-01 22:01:23.048" ) )
Funkcja TIMESTAMP zwraca datę lub datę i godzinę, a nie znacznik czasu, podczas gdy UNIX_TIMESTAMP zwraca unixowy znacznik czasu
Możesz użyć
select from_unixtime(1300464000,"%Y-%m-%d %h %i %s") from table;
Aby uzyskać szczegółowy opis na temat