Cum se convertește timestamp în datetime în MySQL? (Programare, Mysql)

compilați-fan a intrebat.

Cum se convertește 1300464000 în 2011-03-18 16:00:00 în MySQL?

Comentarii

  • Vă rugăm să căutați întrebările/răspunsurile existente înainte de a posta o întrebare nouă – acest subiect a fost deja abordat în detaliu. –  > Por John Parker.
  • Ați aruncat deja o privire pe documentație? Totul este acolo: dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html –  > Por Felix Kling.
  • posibil duplicat al Convert timestamp to a readable date during query –  > Por John Parker.
5 răspunsuri
Richard Tuin

Utilizați FROM_UNIXTIME() în MySQL

Amintiți-vă că, dacă utilizați un cadru care stochează în milisecunde (de exemplu, timestamp-ul Java), aveți să împărțiți la 1000 pentru a obține timpul Unix corect în secunde.

Comentarii

  • SELECT from_unixtime( TIMESTAMP( "2011-12-01", "22:01:23.048" ) ) Nu funcționează. De ce? Utilizând v5.6 –  > Por Janus Troelsen.
  • @JanusTroelsen SELECT from_unixtime( unix_timestamp(TIMESTAMP( "2011-12-01", "22:01:23.048" ) ) ) funcționează. TIMESTAMP() nu returnează o valoare întreagă. –  > Por cnvzmxxcvmcx.
  • Doar pentru că am făcut acest lucru și am fost confuz la ieșire: MySQL stochează timpul Unix în secunde, în timp ce o mulțime de alte framework-uri îl stochează în milisecunde (de exemplu, timestamp-ul Java). Așa că nu uitați să împărțiți la 1000 dacă folosiți această funcție pe date care provin de undeva care utilizează milis pentru timpul Unix. –  > Por Chris Thompson.
Kingshuk Deb
DATE_FORMAT(FROM_UNIXTIME(`orderdate`), '%Y-%m-%d %H:%i:%s') as "Date" FROM `orders`

Aceasta este soluția supremă dacă data dată este în format codificat, cum ar fi 1300464000

Comentarii

  • Vă mulțumim pentru asta. Pentru a include ora: DATE_FORMAT(FROM_UNIXTIME(`orderdate`), '%d-%m-%Y %H:%i:%s') as "Date" FROM `orders` –  > Por JNP Web Developer.
  • Sunt destul de sigur că DATE_FORMAT(FROM_UNIXTIME(orderdate), ‘%Y-%m-%d’) ca „Data” FROM orders ar fi soluția supremă 😀 –  > Por Kyle.
ksvendsen

Pentru a răspunde la comentariul lui Janus Troelsen

Utilizați UNIX_TIMESTAMP în loc de TIMESTAMP

SELECT from_unixtime( UNIX_TIMESTAMP(  "2011-12-01 22:01:23.048" ) )

Funcția TIMESTAMP returnează o dată sau un DateTime și nu un timestamp, în timp ce UNIX_TIMESTAMP returnează un timestamp unix.

Comentarii

  • pare clar pentru a compara un timp unix cu un timp unix. Folosesc SELECT (CAST(CAST(DATE_FORMAT(from_unixtime(UNIX_TIMESTAMP(CURRENT_TIMESTAMP)), ‘%Y-%m-%d’) as DATE) < CAST(‘2019-05-02’ AS DATE)) ; pentru a compara datele, înlocuiesc 2019-05*02 un obiect datetime formatat în php. Thnaks. –  > Por Mantisse.
  • Vă rog să nu răspundeți în acest fel la altă întrebare decât cea inițială. –  > Por Paweł Stankowski.
  • Acest lucru nu răspunde în niciun fel la întrebarea inițială –  > Por Nico Haase.
Dilraj Singh

Puteți folosi

select from_unixtime(1300464000,"%Y-%m-%d %h %i %s") from table;

Pentru o descriere în detaliu despre

  1. from_unixtime()
  2. unix_timestamp()

Comentarii

  • Aș folosi acest format pentru ora militară „%Y-%m-%d %H %i %s” –  > Por tanner burton.
Leo

SELECT from_unixtime( UNIX_TIMESTAMP(fild_with_timestamp) ) from "your_table"
Acest lucru funcționează pentru mine

Tags: