Convertir avec une session UTC
SET time_zone = '+00:00';
SELECT FROM_UNIXTIME(1711972800);
SELECT UNIX_TIMESTAMP('2024-04-01 12:00:00');La première requête donne le 1er avril 2024 à 12:00:00 ; la seconde donne 1711972800 secondes. Le fuseau de session est déterminant lors de la conversion d’une date locale.
Déclarer les valeurs par défaut
Évitez de dépendre des comportements implicites de la première colonne TIMESTAMP, qui varient selon la configuration et la version. Déclarez votre intention dans le schéma.
CREATE TABLE events (
id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
created_at TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
updated_at TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6)
ON UPDATE CURRENT_TIMESTAMP(6)
);Ne pas supposer la même limite que MySQL
Les capacités et plages de TIMESTAMP dépendent de la version MariaDB. Consultez les plages documentées pour votre version et testez les dates limites. Un guide MySQL ne suffit pas à garantir le comportement de MariaDB.
Un timestamp de base de données ne contient pas le nom du fuseau original. Stockez ce nom séparément si votre application doit reconstituer une intention locale, par exemple une réunion récurrente à 09:00 à Paris.