Sélectionner une page

Formules de manipulation de dates dans Airtable

1.Introduction

Vous êtes peut-être un peu perdu au niveau des formules qui permettent de manipuler des dates dans Airtable, nous allons parcourir dans cet articles les différentes formules de manipulation de dates disponibles dans Airtable.

2.Formules de dates dans Airtable

DATETIME_PARSE : Convertir une chaîne de caractères en date

Formule : DATETIME_PARSE(Date string, [format], [locale])

Explication : Analyse la chaîne de caractères donnée en paramètre et essaye d’en déterminer une date. Pour « aider » la formule, vous pouvez lui passer le format de votre date ainsi que les paramètres régionaux. (ce dernier paramètres est rarement utilisé). Je liste toutes les balises de format de date disponibles ci-dessous.

Exemple : DATETIME_PARSE(‘2015-07-02’)

DATETIME_FORMAT : Extraire une partie de la date, formater une date

Formule : DATETIME_FORMAT(Datetime, format string)

Explication : Formate une date (un champ de type date) en une chaîne de caractère. Par exemple si vous voulez en extraire seulement une partie; l’année, le mois, le numéro de la semaine, etc. Je liste toutes les balises de format de date disponibles ci-dessous.

Exemple: DATETIME_FORMAT(NOW(), ‘YYYY-MM’)

DATESTR : Afficher une date au format YYYY-MM-DD

Formule : DATESTR(Datetime)

Explication : Formate une date en une chaîne de caractère comme suit : YYYY-MM-DD. Pas spécialement utile en Europe car ce format de date n’est quasiment jamais utilisé. Il s’agit en fait de l’équivalent de DATETIME_FORMAT(Date, « YYYY-MM-DD »)

Exemple : DATESTR(NOW())

DATEADD : Ajouter des minutes, heures, jours, semaines, mois, années à une date

Formule : DATEADD(Datetime, count, unit)

Explication : Je ne sais pas trop comment décrire celle-ci. Ajoute un « nombre » d’une certaine unité à une date. En gros, ajoutez OU retirez des jours, des semaines, des années à une date. Mettez un « – » devant votre chiffre pour décompter. Testé avec « minute », « hour », « day », « week », « month », « year ». (fonctionne aussi au pluriel avec minuteS, weekS, …)

Exemple : DATEADD(Deadline, -2, ‘week’)

DATETIME_DIFF : Calculer la différence entre deux dates

Syntaxe : DATETIME_DIFF(From, To, units)

Explication : Retourne la différence entre deux dates dans l’unité demandée. Testé avec « minute », « hour », « day », « week », « month », « year ». (fonctionne aussi au pluriel avec minuteS, weekS, …)

Exemple : DATETIME_DIFF({Deadline}, TODAY(), ‘weeks’)

3. Balises de Date/Heure pris en charge dans Airtable

Je ne savais pas trop comment appeler cela en français, concrètement, il s’agit des différentes « balises » que vous allez pouvoir utiliser dans vos formatages de dates.

Soit dans DATETIME_PARSE pour préciser à Airtable comment « lire » votre chaîne de caractères représentant une date ou dans DATETIME_FORMAT afin d’exprimer à Airtable comment vous souhaitez formatter votre Date sous forme de chaîne de caractères.

Veuillez noter que les dates sont retournées sous forme de lettres en notation anglo-saxonne. (par exemple avec des : « st », « nd » et « th » en préfixe pour les numérotations ou encore les noms en toute lettre en anglais.)

Ci-dessous, un tableau récapitulatif des différentes balises supportées :

Balises de formatageDescriptionExemple(s)
MMois de l’année, numéroté de 1-121 2 … 11 12
MoMois de l’année, numéroté de 1st-12th1st 2nd … 11th 12th
MMMois de l’année, numéroté de 01-1201 02 … 11 12
MMMNom du mois, abrégé sur 3 lettresJan Feb … Nov Dec
MMMMNom du moisJanuary … December
QTrimestre de l’année, numéroté de 1-41 2 3 4 
QoTrimestre de l’année, numéroté de 1st-4th1st 2nd 3rd 4th 
DJour du mois, numéroté de 1-311 2 … 30 31 
DoJour du mois, numéroté de 1st-31st1st 2nd … 30th 31st
DDJour du mois, numéroté de 01-3101 02 … 30 31
DDDJour de l’année, numéroté de 1-3651 2 … 364 365
DDDoJour de l’année, numéroté de 1st-365th1st 2nd … 364th 365th
DDDDJour de l’année, numéroté de 001-365001 002 … 364 365
dJour de la semaine, numéroté de 0-60 1 … 5 6
doJour de la semaine, numéroté de 0th-6th0th 1st … 5th 6th
ddJour de la semaine, abrégé sur deux lettresSu Mo … Fr Sa
dddJour de la semaine, abrégé sur 3 lettresSun Mon … Fri Sat
ddddJour de la semaineSunday … Saturday
eJour de la semaine (Locale)0 1 … 5 6
EJour de la semaine (ISO)1 2 … 6 7
wSemaine de l’année, numéroté de 1-531 2 … 52 53
woSemaine de l’année, numéroté de 1st-53rd1st 2nd … 52nd 53rd
wwSemaine de l’année, numéroté de 01-5301 02 … 52 53
WSemaine de l’année (ISO), numéroté de 1-531 2 … 52 53
WoSemaine de l’année (ISO), numéroté de 1st-53rd1st 2nd … 52nd 53rd
WWSemaine de l’année (ISO), numéroté de 01-5301 02 … 52 53
YYAnnée, sur les deux derniers chiffres00 01 … 98 99
YYYYAnnée2000 2001 … 2098 2099
ggAnnée de la semaine, sur les deux derniers chiffres00 01 … 98 99
ggggAnnée de la semaine00 01 … 98 99
GGAnnée de la semaine (ISO), sur les deux derniers chiffres00 01 … 98 99
GGGGAnnée de la semaine (ISO)2000 2001 … 2098 2099
AAvant midi/après-midi (majuscule)AM PM
aAvant midi/après-midi (minuscule)am pm
HHeure exprimée sur une échelle de 0-230 1 … 22 23
HHHeure exprimée sur une échelle de 00-23, fixé sur 2 caractères (completé par un zéro)00 01 … 22 23
hHeure exprimée sur une échelle de 1-121 2 … 11 12
hhHeure exprimée sur une échelle de 01-12, fixé sur 2 caractères (completé par un zéro)01 02 … 11 12
mMinute0 1 … 58 59
mmMinute00 01 … 58 59
sSeconde0 1 … 58 59
ssSeconde00 01 … 58 59
SFraction de seconde0 1 … 8 9
SSFraction de seconde00 01 … 98 99
SSSFraction de seconde000 001 … 998 999
SSSS … SSSSSSSSSFraction de seconde000[0..] … 999[0..]
ZFuseau horaire par rapport au GMT, avec un double-point entre heures et minutes.-07:00 -06:00 … +06:00 +07:00
ZZFuseau horaire par rapport au GMT, sans double-point entre heures et minutes.-0700 -0600 … +0600 +0700
XTimestamp UNIX en secondes1360013296
xTimestamp UNIX en millisecondes1360013296123
LTFormat pré-conçu (raccourci) pour afficher sours la forme h:mm A6:30 PM
LTSFormat pré-conçu (raccourci) pour afficher sours la forme h:mm:ss A6:30:45 PM
LFormat pré-conçu (raccourci) pour afficher sours la forme MM/DD/YYYY06/08/2016
lFormat pré-conçu (raccourci) pour afficher sours la forme M/D/YYYY6/8/2016
LLFormat pré-conçu (raccourci) pour afficher sours la forme MMMM D, YYYYJune 8, 2016
llFormat pré-conçu (raccourci) pour afficher sours la forme MMM D, YYYYJun 8, 2016
LLLFormat pré-conçu (raccourci) pour afficher sours la forme MMMM D, YYYY h:mm AJune 8, 2016 6:30 PM
lllFormat pré-conçu (raccourci) pour afficher sours la forme MMM D, YYYY h:mm AJun 8, 2016 6:30 PM
LLLLFormat pré-conçu (raccourci) pour afficher sours la forme dddd, MMMM D, YYYY h:mm AWednesday, June 8, 2016 6:30 PM
llllFormat pré-conçu (raccourci) pour afficher sours la forme ddd, MMM D, YYYY h:mm AWed, Jun 8, 2016 6:30 PM

Besoin d’aide sur Airtable ?

Découvrez les services que nous proposons.

20 Commentaires

  1. Kilyan

    Salut Florian,

    déjà merci pour ton blog et surtout tes vidéos Youtube !
    Petite question, je souhaite insérer dans un tableau Airtable des dates de façon décroissante comme l’exemple qui suit :
    ligne 1 : 09/06/2022
    Ligne 2 : 08/06/2022
    Ligne 3 : 07/06/2022
    Ligne 10000 : etc.

    Dans Excel cela correspondrait à la formule : +today() – 1
    Mais cela ne marche pas dans Airtable… aurais-tu une idée ?

    En te remerciant par avance 🙂

    Réponse
    • Florian Verdonck

      Salut Kilyan,

      En effet, dans Airtable, une formule appliquée à une ligne ne peut pas reprendre les données d’autres lignes.
      Chaque ligne est totalement indépendante. Une formule une à voir comme un « champ calculé »; qui calcule un résultat sur base des autres colonnes d’une même ligne.

      Dans ton cas, il faudrait probablement utiliser un Script ou Make/Integromat/Zapier pour générer tes lignes.

      Florian

      Réponse
  2. Oziard

    Bonjour,

    vos explications ne répondent pas à ma préoccupation: comment entrer (c’est à dire imposer) une HEURE (de rendez vous, de livraison, de remise de rapport)) dans le champ d’une table en airtable?

    le type date ne convient pas puisqu’il affiche un calendrier et non une montre!

    quelle est la recommandation du concepteur d’airtable?

    Réponse
    • Florian Verdonck

      Bonjour,

      Les champs « Date » permettent d’inclure une heure.
      Si vous avez seulement besoin d’un heure, vous pouvez également détourner l’utilisation du champs « Duration ».

      Florian

      Réponse
  3. Herbillon

    Bonjour,

    Merci pour votre article !
    J’ai un souci sur une formule de différence entre deux dates :
    Je m’explique :

    J’ai une date limite (pour la réalisation d’une tâche) et une date réelle (date à laquelle la tâche a été réalisée).
    Je souhaite calculer le delta entre ces deux dates, en jours, ce qui fonctionne par parfaitement avec cette formule :

    DATETIME_DIFF(
    {Date prévue},
    {Date réelle},
    ‘days’
    )

    Cependant, lorsqu’il n’y a pas de date réelle d’indiquée, la cellule supposée me donner le delta en jours passe en NaN.
    Serait il possible d’avoir une formule permettant d’afficher dans le cas ou il n’y aurait pas de date réelle d’indiquée le delta entre la date prévue et TODAY ?

    Merci beaucoup pour votre aide !

    Réponse
    • Florian Verdonck

      Bonjour Lars,

      Merci pour ton commentaire !

      En effet, c’est un problème assez récurrent, en général, je le résous en imbriquant le DATETIME_DIFF dans un IF permettant d’abord de valider que les cellules contiennent les infos nécessaires.

      On vérifie d’abord qu’on a à la fois la date réelle et la date prévue.
      Si c’est le cas, on exécute datetime_diff.
      Pas de « else » (sinon) ici, donc le comportement implicite est de laisser la cellule vide.

      Ex :

      IF(
      AND({Date prévue}, {Date réelle}),
      DATETIME_DIFF(
      {Date prévue},
      {Date réelle},
      ‘days’
      )
      )

      Réponse
  4. Walid

    Bonjour
    J’aimerai bien créer une case date et heure de début de tache + case durée prévisionnel et une 3 case date fin prévisionnel comment faire?

    Réponse
  5. Heurtel

    Bonjour,
    De quelle manière peut-on extraire, sélectionner une date dans une liste de date ?

    Exemple : le champs est [22/11/2022, 13/03/2022]
    Je ne veux utiliser que la plus récente des dates dans une formule soit avoir que 22/11/2022

    Réponse
  6. Maeva BESSIS

    Bonjour,
    Merci pour votre blog. Je cherche à calculer le nombre de formulaire rempli entre 2 dates. Dans mon formulaire, j’ai une colonne date. Savez-vous comment faire ?
    Merci beaucoup

    Réponse
  7. Jordi

    Bonjour,

    Je n’arrive pas convertir

    une date type : 1675378800000

    une heure type : 19267000

    une durée type : 21480000

    Ces nombres sont extrait d’un export cvs que j’aimerais travailler sur airtable.

    Réponse
  8. Sandrine

    Bonjour Florian et merci pour tes vidéos 🙂
    Je fais du conseil et je souhaiterais calculer le nbr de jours entre début et fin du projet, mais uniquement les jours de semaine soit 5j par semaine
    Est ce possible ? weekdays ne fonctionne pas lol je fais des essais …

    Merci

    Réponse
    • Florian Verdonck

      Bonjour Sandrine,
      WEEKDAYS devrait fonctionner, sans la formule complète il est difficile pour moi d’aider
      Florian

      Réponse
  9. Iman

    Re-bonjour,
    J’ai trouvé la bonne formule :
    DATEADD({Date},{Durée} & «  », ‘years’).
    Merci pour toutes les vidéos, très utiles!

    Réponse
  10. Xavier

    Bonjour,
    J’ai un petit blocage sur mon application.
    Je propose la réservation de créneaux, avec une date de début, et une date de fin.
    J’aimerais utiliser ces dates pour les afficher sur un calendrier.
    Cependant, mes événements commencent et se terminent à heure fixe (13h00 pour le début, 12h00 pour la fin).
    Pour ne pas que les événements se chevauchent sur le calendrier, j’ai besoin de paramétrer automatiquement une heure fixe, mais une date dynamique (que l’utilisateur choisit).
    Je vois que dans Automation, quand un record est créé, on peut mettre à jour ce record, mais la mise à jour du champ se fait sur l’entièreté du champ, je ne peux pas séparer la date (souhaitée dynamique) et l’heure (souhaitée statique).
    Auriez-vous une solution s’il vous plaît ? Un grand merci pour votre aide !!

    Réponse
    • Florian Verdonck

      Bonjour Xavier,

      Si la date est la seule à être modifiable, pourquoi ne pas :
      – créer un champ « date choisie » (type date, sans heure)
      – créer un champ « date & heure » (type formule, ou tu ajoute l’heure grace à une combinaison de datetime_parse et datetime_format)

      Comme ça ton formulaire affiche seulement la date mais tu dispose d’un champ sur lequel te baser pour avoir la date + l’heure (affichage calendrier etc)

      Florian

      Réponse
  11. Johanick

    Bonjour,

    Si j’ai une date d’émission de facture dans une colonne. Je veux que la colonne suivante indique la date du paiement dû, soit 30 jours suivant la date d’émission de la facture. Comment faire ?

    Réponse
    • Florian Verdonck

      Bonjour,

      La formule serait alors :
      DATEADD({Date origine}, 15, « days »)

      Florian

      Réponse
  12. Benoît Dhennin

    très intéressant merci !
    à propos de DATEDIFF, j’ai ce soucis : lorsque je tente de calculer une durée entre 2 événements. Les résultats sont faux.

    Comme je suspecte un problème de conversion entre formats européens et américains, j’ai essayé :

    DATETIME_DIFF(
    SET_TIMEZONE(
    DATETIME_FORMAT({Date de fin}, ‘YYYY-MM-DDTHH:mm:ssZ’),
    ‘Europe/Paris’
    ),
    SET_TIMEZONE(
    DATETIME_FORMAT({Date de Début}, ‘YYYY-MM-DDTHH:mm:ssZ’),
    ‘Europe/Paris’
    ),
    ‘hours’
    )
    mais les résultats sont bizarres :

    18/9/2023 00:00 – 18/5/2024 23:59 = 1:38

    18/9/2023 11:40 – 22/9/2023 11:40 = 0:02

    2/10/2023 16:30 – 2/10/2023 17:30 = 0:00

    Merci pour votre blog et bonne journée !

    Réponse
    • Florian Verdonck

      Bonjour Benoît

      C’est un problème relatif au formatage de votre valeur.
      Je vous conseille de changer « duration » en « number » avec une valeur entière.

      Cela devrait afficher le nombre d’heures entre les deux dates, ce qui est ce que vous recherchez

      Florian

      Réponse

Soumettre un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *