Comprendre le timestamp dans MariaDB

Dans le monde des bases de données, la gestion et l’utilisation correctes du temps sont primordiales. Que ce soit pour suivre les modifications apportées aux enregistrements ou pour organiser les informations en fonction du moment où elles ont été créées ou modifiées, le temps joue un rôle crucial. L’un des types de données les plus couramment utilisés pour gérer le temps est le timestamp. Dans cet article, nous examinerons comment utiliser et gérer les timestamps dans MariaDB, un système de gestion de bases de données très populaire.

Qu’est-ce qu’un timestamp dans MariaDB ?

Un timestamp est une marque temporelle qui enregistre un point précis dans le temps. Il s’agit d’un type de données qui peut être stocké dans une base de données MariaDB et qui est souvent utilisé pour enregistrer le moment de création ou de modification d’un enregistrement. Un timestamp est représenté sous forme d’une chaîne de caractères au format datetime, avec une résolution pouvant aller jusqu’à la microseconde (format « AAAA-MM-JJ HH :MM :SS.mmmmmm »).

MariaDB et le type de données TIMESTAMP

MariaDB propose plusieurs types de données pour gérer les dates et leurs heures. Les deux principaux types sont DATETIME et TIMESTAMP. Bien que ces types soient similaires, il existe quelques différences clés entre eux :

  • DATETIME : peut représenter n’importe quelle date et heure comprise entre 1000-01-01 00 :00 :00 et 9999-12-31 23 :59 :59. Les valeurs DATETIME ont un format constant, quel que soit le fuseau horaire.
  • TIMESTAMP : peut représenter les dates et heures entre l’année 1970 (également connue sous le nom d’époque UNIX) et 2038 (lorsque vient la fin de la plage des timestamps UNIX 32 bits). Contrairement à DATETIME, les valeurs TIMESTAMP sont converties en fonction du fuseau horaire.

Pour travailler avec des timestamps dans MariaDB, il est recommandé d’utiliser le type de données TIMESTAMP plutôt que DATETIME, car cela permet une meilleure gestion des fuseaux horaires et une compatibilité accrue avec les autres bases de données et langages de programmation.

Utilisation des timestamps dans MariaDB

Créer une colonne de timestamp

Pour utiliser un timestamp dans MariaDB, il faut tout d’abord définir une colonne utilisant le type de données TIMESTAMP lors de la création ou de la modification d’une table. Voici un exemple :

CREATE TABLE mon_table (
    id INT PRIMARY KEY AUTO_INCREMENT,
    nom VARCHAR(50),
    date_creation TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

Dans cet exemple, nous avons créé une table appelée « mon_table » avec trois colonnes : id, nom et date_creation. La colonne « date_creation » utilise le type de données TIMESTAMP et a une valeur par défaut qui correspond au moment précis où l’enregistrement est inséré dans la table (« DEFAULT CURRENT_TIMESTAMP »). Ainsi, chaque fois qu’un nouvel enregistrement sera ajouté à cette table, sa date de création sera automatiquement enregistrée.

Insérer un enregistrement avec un timestamp

Lorsque nous insérons un enregistrement dans une table contenant une colonne de type TIMESTAMP, MariaDB utilise la valeur par défaut spécifiée pour cette colonne (si une telle valeur existe). Par exemple :

INSERT INTO mon_table (nom) VALUES ('Thomas');

Dans cet exemple, nous n’avons pas besoin de fournir une valeur pour la colonne « date_creation » car elle a déjà une valeur par défaut (CURRENT_TIMESTAMP). Lors de l’insertion de cet enregistrement, la date et l’heure actuelles seront utilisées comme valeur du timestamp pour la colonne « date_creation ».

Mettre à jour un enregistrement avec un nouveau timestamp

Nous pouvons également mettre à jour les timestamps d’un enregistrement existant dans MariaDB en utilisant la commande UPDATE :

UPDATE mon_table SET nom = 'Sophie', date_creation = CURRENT_TIMESTAMP WHERE id = 1;

Cet exemple met à jour l’enregistrement avec l’id 1 en changeant son nom en ‘Sophie’ et en définissant sa date de création sur le moment présent (CURRENT_TIMESTAMP).

Gestion des fuseaux horaires avec les timestamps

Comme mentionné précédemment, les valeurs TIMESTAMP sont stockées en fonction du fuseau horaire. Cela signifie que lorsqu’une valeur TIMESTAMP est récupérée ou insérée dans la base de données, elle est automatiquement convertie en fonction du fuseau horaire système ou du fuseau horaire défini pour la session.

Pour définir le fuseau horaire pour une session MariaDB, nous pouvons utiliser la commande SET :

SET time_zone = '-3 :00';

Ce code ajuste le fuseau horaire de la session à -3 heures par rapport au temps universel coordonné (UTC). Les valeurs TIMESTAMP seront ensuite converties automatiquement en fonction de ce fuseau horaire lorsqu’elles sont insérées ou récupérées depuis la base de données.

Fonctions utiles liées aux timestamps dans MariaDB

MariaDB offre plusieurs fonctions permettant de travailler avec des timestamps. Voici quelques-unes des plus courantes :

  • FROM_UNIXTIME() : convertit un timestamp UNIX en datetime.
  • UNIX_TIMESTAMP() : convertit un datetime en timestamp UNIX.
  • NOW() / CURRENT_TIMESTAMP() : renvoie l’heure actuelle.
  • DATE_ADD() / DATE_SUB() : ajoute ou soustrait une durée à une date/heure donnée.

L’utilisation de ces fonctions peut aider à faciliter la gestion et la manipulation des timestamps dans diverses opérations et requêtes MariaDB.

En résumé, les timestamps sont essentiels pour gérer correctement le temps dans les bases de données MariaDB. Ils permettent d’enregistrer et de retrouver facilement des informations basées sur le moment de leur création ou modification, tout en fournissant des outils pour manipuler et convertir ces données temporelles. En comprenant le fonctionnement des timestamps dans MariaDB, nous sommes mieux équipés pour créer et gérer efficacement nos bases de données.

Retour en haut