Ich möchte ein timestamp
in MySQL in ein Datum konvertieren .
Ich möchte das Feld user.registration in die Textdatei als formatieren yyyy-mm-dd
.
Hier ist mein SQL:
$sql = requestSQL("SELECT user.email,
info.name,
FROM_UNIXTIME(user.registration),
info.news
FROM user, info
WHERE user.id = info.id ", "export members");
Ich habe auch versucht, die Datumskonvertierung mit:
DATE_FORMAT(user.registration, '%d/%m/%Y')
DATE(user.registration)
Ich habe das Ergebnis vorher wiederholt, um die Textdatei zu schreiben, und ich bekomme:
email1; name1; DATE_FORMAT (user.registration, '% d /% m /% Y'); news1
email2; name2; news2
Wie kann ich dieses Feld auf das Datum konvertieren?
mysql
sql
date-formatting
Remyremie
quelle
quelle
Antworten:
quelle
users
.user_created_at
), '% Y-% b-% e') = '2015-03-06' ist das richtige Format oder sollte ich dies ändern?'%Y-%m-%d'
Sie, wie Sie es in PHP formatieren würden(date('Y-m-d',$row->user_created_at))
- dies (beide Varianten, SQL und PHP) wird als 2018-11-06Konvertieren Sie den Zeitstempel in MYSQL auf das Datum
Erstellen Sie die Tabelle mit einem ganzzahligen Zeitstempel:
Fügen Sie einige Werte ein
Schau mal
Konvertieren Sie die Nummer in einen Zeitstempel:
Konvertieren Sie es in ein lesbares Format:
quelle
Um nur ein Date zu bekommen, kannst du
cast
esund um ein bestimmtes Format zu erhalten
date_format
SQLFiddle-Demo
quelle
Wenn das
registration
Feld tatsächlich vom Typ istTIMESTAMP
, sollten Sie in der Lage sein, Folgendes zu tun:und die Registrierung sollte als JJJJ-MM-TT angezeigt werden
quelle
Verwenden Sie einfach die DATE-Funktion von mysql:
quelle
SELECT DATE(UNIX_TIMESTAMP())
spucktNULL
in mein MySQL 5.7.14Sie sollten konvertieren
timestamp
zudate
.FROM_UNIXTIME
quelle
Wenn Sie die Abfrage in Ihrer Ausgabe erhalten, müssen Sie uns den Code anzeigen, der das Ergebnis tatsächlich wiedergibt. Können Sie den Code veröffentlichen, der RequeteSQL aufruft?
Wenn Sie beispielsweise einfache Anführungszeichen in PHP verwendet haben, wird der Variablenname und nicht der Wert gedruckt
Das klingt genau nach Ihrem Problem und ich bin mir sicher, dass dies die Ursache ist.
Entfernen Sie auch das @ -Symbol, um festzustellen, ob dies hilfreich ist, indem Sie mehr Informationen erhalten.
damit
wird
Dadurch wird jede Fehlerunterdrückung gestoppt, wenn die Abfrage einen Fehler auslöst.
quelle
Ich habe es mit der ‚Datum‘ Funktion wie beschrieben hier :
quelle
FROM_UNIXTIME(unix_timestamp, [format])
ist alles, was du brauchstFROM_UNIXTIME
Ruft einen Zahlenwert ab und wandelt ihn in einDATE
Objekt um.Wenn eine Formatzeichenfolge angegeben wird, wird diese als Zeichenfolge zurückgegeben.
Die ältere Lösung bestand darin, das ursprüngliche Datumsobjekt abzurufen und mit einer zweiten Funktion zu formatieren
DATE_FORMAT
... dies ist jedoch nicht mehr erforderlichquelle
Versuchen:
Der Zeitstempel wird in Millisekunden in einen JJJJ-MM-TT-String formatiert.
quelle