Fonction MySQL UNIX_TIMESTAMP()
La fonction `UNIX_TIMESTAMP()` de MySQL renvoie le timestamp Unix actuel, qui est le nombre de secondes qui se sont écoulées depuis '1970-01-01 00:00:00' UTC. Il peut également convertir une expression de date fournie en un horodatage Unix.
Utilisation
La fonction `UNIX_TIMESTAMP()` est utilisée pour récupérer l'horodatage actuel ou pour convertir une valeur de date et d'heure dans un format d'horodatage Unix. Ceci est particulièrement utile pour les comparaisons de dates et le stockage.
sql
UNIX_TIMESTAMP([date]);
Dans cette syntaxe, `date` est un argument optionnel représentant la date que vous souhaitez convertir. Il doit s'agir d'une expression de date valide. Les formats de date non valides peuvent entraîner une valeur de retour `NULL` ou une erreur, selon le mode SQL. Si elle est omise, la fonction renvoie l'horodatage actuel.
Exemples
1. Horodatage Unix actuel
sql
SELECT UNIX_TIMESTAMP();
Cet exemple renvoie l'horodatage Unix au moment de l'exécution.
2. Convertir une date spécifique en horodatage Unix
sql
SELECT UNIX_TIMESTAMP('2023-10-10 10:00:00');
Cette requête convertit la date et l'heure spécifiées en un horodatage Unix, fournissant une représentation numérique. Notez que la fonction renvoie une valeur entière représentant des secondes, et non des fractions de secondes.
3. Utilisation de UNIX_TIMESTAMP() dans une clause WHERE
sql
SELECT *
FROM events
WHERE event_time < FROM_UNIXTIME(UNIX_TIMESTAMP() - 86400);
Dans cet exemple, la fonction est utilisée pour trouver tous les événements qui se sont produits il y a plus de 24 heures en comparant l'heure de l'événement avec l'horodatage actuel moins 86 400 secondes (un jour). Il suppose que `event_time` est stocké dans un format compatible avec `FROM_UNIXTIME()`, tel qu'un timestamp Unix ou un format date-temps convertible.
Conseils et bonnes pratiques
- Omettre l'argument pour l'heure actuelle. Lorsque vous avez besoin de l'horodatage actuel, utilisez `UNIX_TIMESTAMP()` sans arguments pour plus de simplicité.
- Stockez les horodatages pour la portabilité. Utilisez les horodatages Unix pour un stockage cohérent de la date et de l'heure sur différents systèmes et fuseaux horaires.
- A combiner avec FROM_UNIXTIME(). Utilisez `FROM_UNIXTIME()` pour convertir les timestamps en un format de date lisible lorsque c'est nécessaire.
- Tenez compte des fuseaux horaires. N'oubliez pas que les horodatages Unix sont exprimés en UTC. Tout argument de date fourni est supposé se situer dans le fuseau horaire de la session en cours, sauf indication contraire. Ajustez les fuseaux horaires locaux si nécessaire.
- Gestion des erreurs pour les dates invalides. Sachez que les expressions de date invalides peuvent renvoyer `NULL` ou une erreur, et traitez ces cas de manière appropriée.
- Lisibilité pour l'homme. Si les horodatages Unix sont efficaces pour le stockage, ils sont moins lisibles par l'homme. Envisagez d'enregistrer ou de stocker la date et l'heure d'origine afin de pouvoir vous y référer en cas de besoin pour le débogage.