N'oubliez pas que si vous utilisez un framework qui le stocke en millisecondes (par exemple l'horodatage de Java), vous devez diviser par 1000 pour obtenir le bon temps Unix en secondes.
@JanusTroelsen SELECT from_unixtime( unix_timestamp(TIMESTAMP( "2011-12-01", "22:01:23.048" ) ) )fonctionne. TIMESTAMP()ne renvoie pas de valeur entière.
cnvzmxcvmcx
4
Juste parce que j'ai fait cela et que j'ai été confus à la sortie: MySQL stocke l'heure Unix en secondes, alors que beaucoup d'autres frameworks la stockent en millisecondes (c'est-à-dire l'horodatage de Java). N'oubliez donc pas de diviser par 1000 si vous utilisez cette fonction sur des données provenant d'un endroit qui utilise des millis pour l'heure Unix.
semble clair pour comparer une heure unix à une heure unix. J'utilise SELECT (CAST (DATE_FORMAT (from_unixtime (UNIX_TIMESTAMP (CURRENT_TIMESTAMP)), '% Y-% m-% d') comme DATE) <CAST ('2019-05-02' AS DATE)); pour comparer les dates, je remplace 2019-05 * 02 un objet datetime formaté en php. Thnaks.
Mantisse
1
Veuillez ne pas répondre de cette façon à la question différente de celle d'origine.
Paweł Stankowski
Cela ne répond en aucun cas à la question initiale
Réponses:
Utilisez la
FROM_UNIXTIME()
fonction dans MySQLN'oubliez pas que si vous utilisez un framework qui le stocke en millisecondes (par exemple l'horodatage de Java), vous devez diviser par 1000 pour obtenir le bon temps Unix en secondes.
la source
SELECT from_unixtime( TIMESTAMP( "2011-12-01", "22:01:23.048" ) )
ne fonctionne pas. Pourquoi? en utilisant v5.6SELECT from_unixtime( unix_timestamp(TIMESTAMP( "2011-12-01", "22:01:23.048" ) ) )
fonctionne.TIMESTAMP()
ne renvoie pas de valeur entière.C'est la solution ultime si la date donnée est au format encodé comme
1300464000
la source
DATE_FORMAT(FROM_UNIXTIME(`orderdate`), '%d-%m-%Y %H:%i:%s') as "Date" FROM `orders`
orderdate
), '% Y-% m-% d') comme "Date" FROMorders
serait la solution ultime: DPour répondre au commentaire de Janus Troelsen
Utilisez UNIX_TIMESTAMP au lieu de TIMESTAMP
La fonction TIMESTAMP renvoie une Date ou une DateHeure et non un horodatage, tandis que UNIX_TIMESTAMP renvoie un horodatage unix
la source
Vous pouvez utiliser
Pour en détails la description de
la source
SELECT from_unixtime( UNIX_TIMESTAMP(fild_with_timestamp) ) from "your_table"
Ce travail pour moi
la source