Tous les produits
Search
Centre de documentation

Lindorm:Fonctions temporelles

Dernière mise à jour :Aug 11, 2026

LindormTable prend en charge quatre fonctions temporelles pour formater les horodatages, convertir entre horodatages UNIX et horodatages locaux à la session, et calculer des différences de dates. Ces fonctions s'appliquent uniquement à LindormTable. Toutes les fonctions s'exécutent dans le fuseau horaire de la session actuelle.

Prérequis

Avant de commencer, assurez-vous d'avoir :

  • LindormTable version 2.7.8 ou ultérieure (pour DATE_FORMAT, FROM_UNIXTIME et DATEDIFF)

  • Lindorm SQL version 2.8.7.0 ou ultérieure (pour DATE_FORMAT, FROM_UNIXTIME et DATEDIFF)

  • LindormTable version 2.8.0 ou ultérieure et Lindorm SQL version 2.9.0.0 ou ultérieure (pour UNIX_TIMESTAMP)

Pour afficher ou mettre à niveau la version mineure du moteur LindormTable, consultez les Notes de publication de LindormTable et la rubrique Mettre à niveau la version mineure du moteur d'une instance Lindorm. Pour connaître la version de Lindorm SQL, reportez-vous aux Versions SQL.

Fonctions prises en charge

Fonction Description
DATE_FORMAT Formate un horodatage en utilisant le fuseau horaire de la session actuelle.
FROM_UNIXTIME Convertit une valeur de type Number (BIGINT, INTEGER, SMALLINT ou TINYINT) en horodatage en utilisant le fuseau horaire de la session actuelle. Fonction inverse de UNIX_TIMESTAMP.
DATEDIFF Renvoie la différence en jours entre deux horodatages, basée uniquement sur les valeurs de date.
UNIX_TIMESTAMP Convertit un horodatage ou une chaîne d'horodatage en horodatage UNIX. Renvoie une valeur DOUBLE en secondes. Fonction inverse de FROM_UNIXTIME.

DATE_FORMAT

Formate un horodatage en utilisant le fuseau horaire de la session actuelle. Pour afficher ou définir le fuseau horaire de la session, consultez la rubrique Spécifier un fuseau horaire pour une connexion LindormTable.

Syntaxe

DATE_FORMAT(TIMESTAMP ts, STRING format)

Paramètres

Paramètre Obligatoire Description
ts Oui Horodatage à formater.
format Oui Chaîne de format composée de spécificateurs de format (par exemple, %Y-%m-%d). Les caractères ne commençant pas par % sont renvoyés tels quels. Pour la liste complète des spécificateurs pris en charge, consultez la section Spécificateurs de format.

Exemple

Formatez l'horodatage 2024-01-01 17:20:35 sous la forme at 17:20:35 on Jan 1st, 2024 :

SELECT DATE_FORMAT('2024-01-01 17:20:35', 'at %T on %b %D, %Y');

Sortie :

+------------------------------+
| EXPR$0                       |
+------------------------------+
| at 17:20:35 on JAN 1st, 2024 |
+------------------------------+

FROM_UNIXTIME

Convertit une valeur de type Number en horodatage en utilisant le fuseau horaire de la session actuelle. Il s'agit de la fonction inverse de UNIX_TIMESTAMP. Accepte les valeurs BIGINT, INTEGER, SMALLINT et TINYINT. L'entrée représente le nombre de secondes écoulées depuis 1970-01-01 00:00:00 UTC, avec conservation d'un maximum de trois décimales.

Seul le protocole MySQL permet de modifier le fuseau horaire d'une connexion. Consultez les rubriques Utiliser le protocole MySQL pour développer des applications (recommandé) et Se connecter et utiliser LindormTable avec un client MySQL.

Syntaxe

-- Convert a UNIX timestamp to a session-local timestamp.
FROM_UNIXTIME(Number seconds)

-- Convert and format the result.
-- Equivalent to: DATE_FORMAT(FROM_UNIXTIME(seconds), format)
FROM_UNIXTIME(Number seconds, STRING format)

La forme à deux paramètres équivaut à appeler DATE_FORMAT sur le résultat de la forme à un paramètre. Le paramètre format accepte les mêmes spécificateurs que DATE_FORMAT. Pour plus de détails, consultez la section Spécificateurs de format.

Paramètres

Paramètre Obligatoire Description
seconds Oui Horodatage UNIX en secondes. Un maximum de trois décimales est conservé. La valeur représente le nombre de secondes écoulées depuis 1970-01-01 00:00:00 UTC.
format Non Chaîne de format. Utilise les mêmes spécificateurs que DATE_FORMAT.

Exemples

Exemple 1 : Convertir un horodatage UNIX

Convertissez 10.1578 en horodatage en utilisant le fuseau horaire de la session actuelle :

SELECT FROM_UNIXTIME(10.1578);

Sortie :

+-------------------------+
| EXPR$0                  |
+-------------------------+
| 1970-01-01 08:00:10.158 |
+-------------------------+

Modifiez le fuseau horaire de la session vers +03:00 et convertissez à nouveau :

-- Change the session time zone.
SET @@time_zone='+03:00';

-- Convert using the new time zone.
SELECT FROM_UNIXTIME(10.1578);

Sortie :

+-------------------------+
| EXPR$0                  |
+-------------------------+
| 1970-01-01 03:00:10.158 |
+-------------------------+

Exemple 2 : Convertir et formater

Convertissez 10.1578 et formatez le résultat en utilisant le fuseau horaire de la session actuelle :

SELECT FROM_UNIXTIME(10.1578, 'at %T on %b %D, %Y');

Sortie :

+------------------------------+
| EXPR$0                       |
+------------------------------+
| at 08:00:10 on JAN 1st, 1970 |
+------------------------------+

Modifiez le fuseau horaire de la session vers +03:00 et formatez à nouveau :

-- Change the session time zone.
SET @@time_zone='+03:00';

-- Convert and format using the new time zone.
SELECT FROM_UNIXTIME(10.1578, 'at %T on %b %D, %Y');

Sortie :

+------------------------------+
| EXPR$0                       |
+------------------------------+
| at 03:00:10 on JAN 1st, 1970 |
+------------------------------+

DATEDIFF

Renvoie la différence en jours entre deux horodatages dans le fuseau horaire de la session actuelle. Le résultat correspond à ts1 - ts2 ; seules les valeurs de date sont comparées, les heures, minutes et secondes sont ignorées.

  • Résultat positif : ts1 est une date postérieure à ts2.

  • Résultat négatif : ts1 est une date antérieure à ts2.

  • Zéro : ts1 et ts2 tombent le même jour.

Syntaxe

DATEDIFF(TIMESTAMP ts1, TIMESTAMP ts2)

Paramètres

Paramètre Obligatoire Description
ts1 Oui Premier horodatage.
ts2 Oui Deuxième horodatage.

Exemples

Exemple 1 : ts1 est antérieur à ts2

SELECT DATEDIFF('2024-01-01 15:30:00', '2024-01-02 00:59:59');

Sortie :

+--------+
| EXPR$0 |
+--------+
|     -1 |
+--------+

Exemple 2 : ts1 est postérieur à ts2

SELECT DATEDIFF('2024-01-05 15:30:00', '2024-01-02 00:59:59');

Sortie :

+--------+
| EXPR$0 |
+--------+
|      3 |
+--------+

Exemple 3 : ts1 et ts2 tombent le même jour

Les horaires diffèrent, mais la date est identique, donc le résultat est 0 :

SELECT DATEDIFF('2024-01-02 15:30:00', '2024-01-02 00:59:59');

Sortie :

+--------+
| EXPR$0 |
+--------+
|      0 |
+--------+

UNIX_TIMESTAMP

Convertit un horodatage ou une chaîne d'horodatage en horodatage UNIX. Renvoie une valeur DOUBLE. Il s'agit de la fonction inverse de FROM_UNIXTIME.

Important

UNIX_TIMESTAMP nécessite LindormTable version 2.8.0 ou ultérieure et Lindorm SQL version 2.9.0.0 ou ultérieure. Mettez à niveau la version mineure du moteur LindormTable dans la console Lindorm si nécessaire.

La précision de la valeur renvoyée dépend du type d'entrée :

  • Entrée TIMESTAMP : 3 décimales conservées.

  • Entrée VARCHAR : la chaîne d'horodatage représente l'horodatage dans le fuseau horaire de la session actuelle. Un maximum de 6 décimales est conservé.

Vous pouvez utiliser UNIX_TIMESTAMP dans :

Syntaxe

UNIX_TIMESTAMP(ts)

Paramètres

Paramètre Obligatoire Description
ts Oui Horodatage à convertir. Doit être de type TIMESTAMP ou VARCHAR.

Exemples

Créez une table et insérez des exemples de données :

-- Create a table with TIMESTAMP and VARCHAR timestamp columns.
CREATE TABLE t1(p1 INT, c1 TIMESTAMP, c2 VARCHAR, c3 DOUBLE, PRIMARY KEY(p1));

-- Insert sample rows.
UPSERT INTO t1(p1, c1, c2, c3) VALUES
(1, '2025-01-01 08:30:00',          '2025-01-01 08:30:00',          '12.24'),
(2, '1970-01-01 08:00:00.123',      '1970-01-01 08:00:00.123',      '10.32'),
(3, '1970-01-01 08:00:10.13579',    '1970-01-01 08:00:10.13579',    '10.12'),
(4, '1970-01-01 08:00:10.123456789','1970-01-01 08:00:10.123456789','17.33');

Exemple 1 : Interroger les horodatages UNIX depuis une table

Les valeurs TIMESTAMP (c1) conservent 3 décimales ; les valeurs VARCHAR (c2) conservent jusqu'à 6 décimales.

SELECT p1, UNIX_TIMESTAMP(c1), UNIX_TIMESTAMP(c2) FROM t1;

Sortie :

+----+------------+------------+
| p1 | EXPR$1     | EXPR$2     |
+----+------------+------------+
| 1  | 1735691400 | 1735691400 |
| 2  | 0.123      | 0.123      |
| 3  | 10.135     | 10.13579   |
| 4  | 10.123     | 10.123457  |
+----+------------+------------+

Exemple 2 : Filtrer les lignes en utilisant UNIX_TIMESTAMP dans une clause WHERE

Comptez les lignes dont l'horodatage UNIX de c1 est supérieur à 10 :

SELECT COUNT(*) FROM t1 WHERE UNIX_TIMESTAMP(c1) > 10;

Sortie :

+--------+
| EXPR$0 |
+--------+
| 3      |
+--------+

Exemple 3 : Écrire un résultat UNIX_TIMESTAMP dans une colonne DOUBLE

Utilisez UNIX_TIMESTAMP dans une clause VALUES pour écrire directement le résultat dans la colonne DOUBLE c3 :

UPSERT INTO t1(p1, c3) VALUES(1, UNIX_TIMESTAMP('1970-01-01 08:00:00.123'));

Pour vérifier le résultat, exécutez :

SELECT * FROM t1;

Spécificateurs de format

Les spécificateurs de format suivants sont pris en charge par DATE_FORMAT et FROM_UNIXTIME.

Important

Les caractères de la chaîne de format qui ne commencent pas par % sont renvoyés tels quels.

Spécificateur Sortie Description
%a Sun to Sat Nom abrégé du jour de la semaine.
%b Jan to Dec Nom abrégé du mois.
%c 0 à 12 Mois sous forme de valeur numérique.
%D 1st, 2nd, 3rd... Jour du mois avec suffixe ordinal.
%d 00 à 31 Jour du mois, deux chiffres.
%e 00 à 31 Jour du mois, deux chiffres.
%f 000000 à 999999 Microsecondes.
%H 00 à 23 Heure au format 24 heures, deux chiffres.
%h 01 à 12 Heure au format 12 heures, deux chiffres.
%I 01 à 12 Heure au format 12 heures, deux chiffres.
%i 00 à 59 Minutes, deux chiffres.
%j 001 à 366 Jour de l'année, trois chiffres.
%k 0 à 23 Heure au format 24 heures, numérique.
%l 1 à 12 Heure au format 12 heures, numérique.
%M January à December Nom complet du mois.
%m 01 à 12 Mois, deux chiffres.
%p AM ou PM Indicateur AM/PM.
%r hh:mm:ss AM/PM Heure au format 12 heures.
%S 00 à 59 Secondes, deux chiffres.
%s 00 à 59 Secondes, deux chiffres.
%T hh:mm:ss Heure au format 24 heures.
%W Sunday à Saturday Nom complet du jour de la semaine.
%w 0 à 6 Jour de la semaine sous forme de nombre. 0 = dimanche, 1 = lundi.
%Y Année à quatre chiffres Exemple : 2025.
%y Année à deux chiffres Basé sur les deux derniers chiffres de l'année. Exemple : 24 pour 2024.
%% % Un signe pourcentage littéral.
%x x Toute lettre qui n'est pas un spécificateur réservé, renvoyée telle quelle. Exemple : %U renvoie U.