La Bourse américaine est-elle ouverte aujourd’hui ?
Vérifiez si la Bourse américaine est ouverte aujourd’hui, consultez le calendrier, les prochains jours fériés et le traitement des ordres pendant la fermeture.
Le marché actions américain est ouvert du lundi au vendredi, de 9 h 30 à 16 h 00, heure de l’Est, sauf les jours fériés prévus au calendrier et lors de quelques clôtures anticipées à 13 h. La question « le marché actions est-il ouvert aujourd’hui ? » se résume donc à trois vérifications : sommes-nous un jour de semaine, la date figure-t-elle au calendrier des jours fériés et où en est-on dans la séance ? Cette page effectue ces trois contrôles à partir des données en direct des places boursières à chaque actualisation. La mention « données au » ci-dessus indique la fraîcheur des données. Pour consulter les horaires séance par séance, voir horaires du marché actions ; pour le calendrier complet, voir jours fériés et clôtures anticipées du marché.
La Bourse est-elle ouverte en ce moment ?
Le panneau ci-dessous calcule la réponse au moment de la dernière actualisation des données de cette page. Il vérifie le jour de la semaine, recherche la date du jour dans le calendrier des jours fériés de la Bourse et situe l’heure de l’Est à l’intérieur ou à l’extérieur des plages officielles : avant-marché à partir de 4 h 00, séance régulière à partir de 9 h 30, after-hours de la clôture jusqu’à 20 h 00.
| date vérifiée | jour de la semaine | heure vérifiée (ET) | calendrier du jour | état du marché | prochaine séance régulière | jours avant la prochaine séance |
|---|---|---|---|---|---|---|
| 2026-09-04 | Friday | 09:00 | normal weekday | PREMARKET | 2026-09-04 | 0 |
Le SQL exact derrière chaque chiffre
WITH
toTimeZone(now(), 'America/New_York') AS now_et,
toDate(now_et) AS today_et,
toHour(now_et) * 60 + toMinute(now_et) AS min_now,
(SELECT countDistinct(date) FROM global_markets.stocks_market_holidays
WHERE date = toDate(toTimeZone(now(), 'America/New_York')) AND status = 'closed') AS today_full_holiday,
(SELECT countDistinct(date) FROM global_markets.stocks_market_holidays
WHERE date = toDate(toTimeZone(now(), 'America/New_York')) AND status = 'early-close') AS today_early,
(SELECT any(name) FROM global_markets.stocks_market_holidays
WHERE date = toDate(toTimeZone(now(), 'America/New_York'))) AS today_holiday_name,
if(today_early = 1, 780, 960) AS close_min,
if(today_early = 1, 1020, 1200) AS after_hours_end,
(SELECT min(d) FROM (SELECT toDate(toTimeZone(now(), 'America/New_York')) + arrayJoin(range(1, 11)) AS d)
WHERE toDayOfWeek(d) <= 5
AND d NOT IN (SELECT date FROM global_markets.stocks_market_holidays WHERE status = 'closed')) AS next_sess_after_today,
toDayOfWeek(today_et) <= 5 AND today_full_holiday = 0 AS today_is_session
SELECT
toString(today_et) AS date_checked,
formatDateTime(today_et, '%W') AS weekday,
formatDateTime(now_et, '%H:%i') AS time_checked_et,
multiIf(toDayOfWeek(today_et) >= 6, 'weekend',
today_full_holiday = 1, concat('holiday — ', today_holiday_name),
today_early = 1, concat('early close (1:00 pm) — ', today_holiday_name),
'normal weekday') AS todays_calendar,
multiIf(NOT today_is_session, 'CLOSED',
min_now < 240, 'CLOSED (overnight)',
min_now < 570, 'PREMARKET',
min_now < close_min, 'OPEN',
min_now < after_hours_end, 'AFTER-HOURS',
'CLOSED (overnight)') AS market_status,
toString(if(today_is_session AND min_now < close_min, today_et, next_sess_after_today)) AS next_regular_session,
dateDiff('day', today_et, if(today_is_session AND min_now < close_min, today_et, next_sess_after_today)) AS days_to_next_sessionÀ 09:00 ET le Friday, 2026-09-04, le statut calculé était PREMARKET, avec l’entrée du calendrier du jour « normal weekday ». La prochaine ouverture de la séance régulière prévue, aujourd’hui même lorsque le statut est PREMARKET ou OPEN, est 2026-09-04. Cette date exclut déjà les week-ends et tous les jours fériés entraînant une fermeture complète. Elle ne se situe jamais à plus de quelques jours, y compris après un long week-end férié. Vous lisez cet article après l’heure indiquée ? Les trois mêmes vérifications prennent quelques secondes manuellement : le jour de la semaine, le calendrier des jours fériés ci-dessous et l’heure ET.
Prochaine fermeture programmée et suivantes
Le calendrier à terme provient directement du flux de la place boursière. Une nuance mérite d’être précisée : le tableau inclut aujourd’hui lorsque la journée est elle-même fériée ou prévoit une fermeture anticipée. La requête demande toutes les fermetures à compter d’aujourd’hui, et non strictement celles qui suivent. Ainsi, un matin férié, la première ligne et le panneau de statut ci-dessus concordent.
| date de fermeture | tombe un | jour férié | statut du jour | clôture à (ET) | jours restants |
|---|---|---|---|---|---|
| 2026-09-07 | Mon | Labor Day | closed | 3 | |
| 2026-11-26 | Thu | Thanksgiving | closed | 83 | |
| 2026-11-27 | Fri | Thanksgiving | early-close | 13:00 | 84 |
| 2026-12-24 | Thu | Christmas | early-close | 13:00 | 111 |
| 2026-12-25 | Fri | Christmas | closed | 112 | |
| 2027-01-01 | Fri | New Years Day | closed | 119 | |
| 2027-01-18 | Mon | Martin Luther King, Jr. Day | closed | 136 | |
| 2027-02-15 | Mon | Washington's Birthday | closed | 164 | |
| 2027-03-26 | Fri | Good Friday | closed | 203 | |
| 2027-05-31 | Mon | Memorial Day | closed | 269 | |
| 2027-06-18 | Fri | Juneteenth | closed | 287 | |
| 2027-07-05 | Mon | Independence Day | closed | 304 |
Le SQL exact derrière chaque chiffre
SELECT toString(date) AS closure_date,
formatDateTime(date, '%a') AS falls_on,
any(name) AS holiday,
any(status) AS day_status,
any(if(status = 'early-close', formatDateTime(toTimeZone(close, 'America/New_York'), '%H:%i'), '')) AS closes_at_et,
dateDiff('day', today(), date) AS days_away
FROM global_markets.stocks_market_holidays
WHERE exchange = 'NYSE' AND date >= today()
GROUP BY date
ORDER BY date
LIMIT 16La prochaine interruption programmée est Labor Day le 2026-09-07 (closed), dans 3 jours par rapport à l’horodatage de mise à jour. Tout jour ouvré absent de ce tableau correspond à une séance normale de 9 h 30 à 16 h. Les journées à fermeture anticipée s’achèvent à 13 h, heure de l’Est, pour les échanges réguliers. Elles se concentrent autour de Thanksgiving, de la veille de Noël et du Fourth of July. La vente aux enchères de clôture a tout de même lieu ces jours-là ; elle imprime simplement les transactions trois heures plus tôt.
Combien de jours le marché est-il fermé chaque année ?
« Environ neuf ou dix jours fériés par an » est la réponse habituelle. Cette page peut les compter au lieu de les estimer. Le flux de données de la Bourse ne recense que les fermetures encore à venir. Les jours déjà passés sont donc reconstitués à partir du tape : un jour de semaine où SPY n’a affiché aucune barre minute pendant la séance normale correspond à une fermeture complète. Un jour où il a affiché environ la moitié d’une séance, soit environ 210 barres au lieu de 390, correspond à une clôture anticipée.
| catégorie | déjà passé | encore à venir | total | année civile |
|---|---|---|---|---|
| full closure | 7 | 3 | 10 | 2026 |
| early close (1:00 pm) | 0 | 2 | 2 | 2026 |
Le SQL exact derrière chaque chiffre
WITH day_bars AS (
SELECT cal.day AS day, ifNull(t.bars, 0) AS bars
FROM (SELECT makeDate(toYear(today()), 1, 1) + arrayJoin(range(370)) AS day) AS cal
LEFT JOIN (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, count() AS bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= toDateTime(makeDate(toYear(today()), 1, 1), 'America/New_York')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY d
) AS t ON t.d = cal.day
WHERE toDayOfWeek(cal.day) BETWEEN 1 AND 5
AND cal.day <= today() - 4
),
past AS (
SELECT countIf(bars = 0) AS past_full, countIf(bars BETWEEN 120 AND 330) AS past_early
FROM day_bars
),
ahead AS (
SELECT countDistinctIf(date, status = 'closed') AS ahead_full,
countDistinctIf(date, status = 'early-close') AS ahead_early
FROM global_markets.stocks_market_holidays
WHERE date > today() - 4 AND toYear(date) = toYear(today())
)
SELECT category, already_passed, still_ahead, already_passed + still_ahead AS total, toString(toYear(today())) AS calendar_year
FROM (
SELECT 'full closure' AS category, past.past_full AS already_passed, ahead.ahead_full AS still_ahead, 1 AS ord FROM past, ahead
UNION ALL
SELECT 'early close (1:00 pm)' AS category, past.past_early AS already_passed, ahead.ahead_early AS still_ahead, 2 AS ord FROM past, ahead
)
ORDER BY ord2026 recense 10 fermetures complètes, dont 7 déjà passées et 3 encore à venir, ainsi que 2 clôtures anticipées programmées à 13 h, dont 2 restent à venir. (Une fermeture datant de quelques jours seulement peut temporairement n’apparaître dans aucun des deux décomptes, le temps que le retard d’intégration du tape se résorbe. La répartition se corrige automatiquement lors de la prochaine actualisation.) Les week-ends représentent le reste des jours de fermeture : en retranchant de 365 les quelque 104 jours de week-end et ces jours fériés, il reste environ 250 séances de marché sur une année.
Le relevé des transactions : la dernière séance
Un calendrier indique ce qui devrait se produire ; le relevé des transactions indique ce qui s’est réellement produit. Le panneau ci-dessous extrait la dernière séance effectivement observée dans notre relevé de barres minute de SPY, le nombre de barres, le nombre de transactions sur options SPY exécutées le même jour, ainsi que la dernière demi-séance présente dans l’historique récent.
| séance la plus récente | jour de la semaine | barres minute de la séance normale | transactions d’options SPY (milliers) | dernière clôture anticipée | barres de clôture anticipée |
|---|---|---|---|---|---|
| 2026-09-03 | Thursday | 211 | 1483 | 2026-09-03 | 211 |
Le SQL exact derrière chaque chiffre
WITH rth AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, count() AS bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= today() - 450
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY d
),
last_sess AS (
SELECT max(d) AS last_d
FROM rth
WHERE bars >= 120 AND d < toDate(toTimeZone(now(), 'America/New_York'))
),
opt AS (
SELECT round(count() / 1e3, 0) AS spy_option_prints_thousands
FROM global_markets.options_trades
WHERE ticker >= 'O:SPY2' AND ticker < 'O:SPY3'
AND sip_timestamp >= toDateTime((SELECT last_d FROM last_sess), 'America/New_York')
AND sip_timestamp < toDateTime((SELECT last_d FROM last_sess) + 1, 'America/New_York')
),
last_early AS (
SELECT toString(max(d)) AS last_early_close_date,
argMax(bars, d) AS its_bars
FROM rth WHERE bars BETWEEN 120 AND 330
)
SELECT toString((SELECT last_d FROM last_sess)) AS most_recent_session,
formatDateTime((SELECT last_d FROM last_sess), '%W') AS weekday,
(SELECT bars FROM rth WHERE d = (SELECT last_d FROM last_sess)) AS regular_minute_bars,
(SELECT spy_option_prints_thousands FROM opt) AS spy_option_prints_thousands,
(SELECT last_early_close_date FROM last_early) AS last_early_close,
(SELECT its_bars FROM last_early) AS early_close_barsLa dernière séance de notre relevé est le 2026-09-03 (Thursday), avec 211 barres minute en séance normale ; une séance complète en compte environ 390, contre environ 210 pour une clôture anticipée. La même séance a enregistré environ 1483 milliers de transactions individuelles sur options SPY. Le marché des options suit le calendrier boursier, y compris les jours fériés et les demi-séances, et les échéances qui tombent un vendredi de fermeture sont avancées d’un jour. La dernière clôture anticipée présente dans le relevé est le 2026-09-03, avec 211 barres minute, ce qui correspond à la structure mesurée d’une demi-séance se terminant à 13 h. À noter : cet entrepôt de données est alimenté avec un décalage d’un à deux jours. La « dernière séance » peut donc être antérieure d’un ou deux jours à la séance effectivement la plus récente.
Quand le marché ferme sans prévenir
Les fermetures programmées figurent au calendrier ; les fermetures imprévues, jamais. Elles sont rares, quelques-unes par décennie, et le tape en conserve la trace : une séance en semaine qui aurait dû compter 390 bougies, mais n’en compte aucune.
| date de fermeture | tombe un | nom | barres de séance normale du SPY |
|---|---|---|---|
| 2012-10-29 | Mon | Hurricane Sandy — day 1 | 0 |
| 2012-10-30 | Tue | Hurricane Sandy — day 2 | 0 |
| 2012-10-31 | Wed | Reopening after Sandy | 390 |
| 2018-12-05 | Wed | Mourning — George H. W. Bush | 0 |
| 2025-01-09 | Thu | Mourning — Jimmy Carter | 0 |
Le SQL exact derrière chaque chiffre
WITH events AS (
SELECT arrayJoin([
(toDate('2012-10-29'), 'Hurricane Sandy — day 1'),
(toDate('2012-10-30'), 'Hurricane Sandy — day 2'),
(toDate('2012-10-31'), 'Reopening after Sandy'),
(toDate('2018-12-05'), 'Mourning — George H. W. Bush'),
(toDate('2025-01-09'), 'Mourning — Jimmy Carter')
]) AS e
),
tape AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, count() AS bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND ((window_start >= '2012-10-29 00:00:00' AND window_start < '2012-11-01 12:00:00')
OR (window_start >= '2018-12-05 00:00:00' AND window_start < '2018-12-06 12:00:00')
OR (window_start >= '2025-01-09 00:00:00' AND window_start < '2025-01-10 12:00:00'))
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY d
)
SELECT toString(e.1) AS closure_date,
formatDateTime(e.1, '%a') AS falls_on,
e.2 AS name,
toUInt32(ifNull(t.bars, 0)) AS spy_regular_session_bars
FROM events
LEFT JOIN tape AS t ON t.d = events.e.1
ORDER BY e.1L’ouragan Sandy a maintenu les deux principales places boursières fermées les 2012-10-29 et 2012-10-30, la première fermeture de plusieurs jours pour cause météorologique depuis 1888. La séance de reprise, le 2012-10-31, a compté 390 bougies. Des journées nationales de deuil ont entraîné la fermeture du marché le 2018-12-05 (président George H. W. Bush) et le 2025-01-09 (président Jimmy Carter). La plus longue fermeture imprévue de l’ère moderne, du 11 au 14 septembre 2001, soit quatre séances consécutives, est antérieure à nos données en minute, qui commencent en 2003. Chacune des fermetures ci-dessus apparaît sur le tape sous la forme de 0 bougies de séance régulière : aucun échange n’a été exécuté.
Que se passe-t-il lorsqu’un ordre est passé pendant la fermeture du marché ?
Aucune transaction n’est exécutée lorsque le marché est fermé. Un ordre transmis un samedi, un jour férié ou à 2 h du matin reste simplement en attente chez votre courtier jusqu’à la prochaine séance. Un ordre au marché en attente est alors exécuté au prix découvert par l’enchère d’ouverture, plusieurs jours après votre clic. L’écart entre la clôture d’une séance et le premier print de la suivante correspond au risque de marché que vous acceptez. Il est mesurable :
| dernière séance avant | séance de réouverture | jours de suspension | clôture avant interruption | cours de réouverture | gap (%) |
|---|---|---|---|---|---|
| Fri 2026-06-26 | Mon 2026-06-29 | 3 | 729.09 | 736.52 | 1.02 |
| Thu 2026-07-02 | Mon 2026-07-06 | 4 | 744.8 | 748.74 | 0.53 |
| Fri 2026-07-10 | Mon 2026-07-13 | 3 | 754.9 | 752.47 | -0.32 |
| Fri 2026-07-17 | Mon 2026-07-20 | 3 | 743.2 | 747.06 | 0.52 |
| Fri 2026-07-24 | Mon 2026-07-27 | 3 | 738.85 | 744.91 | 0.82 |
| Fri 2026-07-31 | Mon 2026-08-03 | 3 | 746.81 | 749.44 | 0.35 |
| Fri 2026-08-07 | Mon 2026-08-10 | 3 | 773.2 | 772.6 | -0.08 |
| Fri 2026-08-14 | Mon 2026-08-17 | 3 | 776.3 | 776.18 | -0.02 |
| Fri 2026-08-21 | Mon 2026-08-24 | 3 | 765.69 | 764.78 | -0.12 |
| Fri 2026-08-28 | Mon 2026-08-31 | 3 | 769.34 | 767.33 | -0.26 |
Le SQL exact derrière chaque chiffre
WITH daily AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
round(argMin(toFloat64(open), window_start), 2) AS open_px,
round(argMax(toFloat64(close), window_start), 2) AS close_px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= today() - 75
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY d
),
paired AS (
SELECT d,
open_px,
lagInFrame(d) OVER (ORDER BY d) AS prev_d,
lagInFrame(close_px) OVER (ORDER BY d) AS prev_close
FROM daily
)
SELECT concat(formatDateTime(prev_d, '%a '), toString(prev_d)) AS last_session_before,
concat(formatDateTime(d, '%a '), toString(d)) AS reopening_session,
dateDiff('day', prev_d, d) AS days_dark,
toString(prev_close) AS close_before_break,
toString(open_px) AS reopening_print,
round((open_px - prev_close) / prev_close * 100, 2) AS gap_pct
FROM paired
WHERE prev_close > 0 AND dateDiff('day', prev_d, d) >= 3
ORDER BY dLe tableau couvre les 10 derniers week-ends et week-ends prolongés. La colonne days_dark recense les périodes de fermeture de quatre jours. La plus récente s’est étendue du Fri 2026-08-28 au Mon 2026-08-31, soit 3 jours calendaires sans cotation. Avant cette interruption, SPY avait clôturé la séance régulière à $769.34. Le print de réouverture s’est établi à $767.33. Un ordre au marché en attente aurait donc accepté, sans visibilité préalable, un gap de -0.26%. Un ordre à cours limité plafonne le prix, au risque de ne pas être exécuté. L’article pourquoi les actions affichent un gap overnight explique les mécanismes à l’origine de ces mouvements.
Fuseaux horaires, marché obligataire et reste du monde
Trois décalages expliquent l’essentiel de la confusion qui subsiste sur les horaires d’ouverture. Fuseaux horaires : les horaires officiels sont exprimés en heure de l’Est. 9 h 30 ET correspondent à 6 h 30 sur la côte Pacifique et à 14 h à Londres pendant la majeure partie de l’année. Les dates de marché sont également celles de l’heure de l’Est. Un lecteur en Asie peut donc voir son « aujourd’hui » couvrir deux séances américaines. Marché obligataire : les Treasuries suivent le calendrier de la SIFMA, et non celui du NYSE. Ils observent tous les jours fériés du marché actions, ainsi que deux jours supplémentaires. Leurs clôtures anticipées sont recommandées à 14 h et surviennent plus souvent que les demi-séances du marché actions, qui se terminent à 13 h. L’écart sur les journées entières est visible dans les données :
| date de séance | jour de la semaine |
|---|---|
| 2025-10-13 | Monday |
| 2025-11-11 | Tuesday |
Le SQL exact derrière chaque chiffre
WITH stock_days AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= today() - 370
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY d
HAVING count() >= 100
)
SELECT toString(d) AS session_date,
formatDateTime(d, '%W') AS weekday
FROM stock_days
WHERE d <= (SELECT max(date) FROM global_markets.treasury_yields)
AND d NOT IN (SELECT date FROM global_markets.treasury_yields WHERE date >= today() - 370)
ORDER BY dSur l’année glissante, il y a eu exactement 2 jours ouvrés où le marché actions a tenu une séance complète sans qu’aucun rendement de Treasury ne soit publié : 2025-10-13 et 2025-11-11, un en octobre et un en novembre : Columbus Day et Veterans Day, les deux jours fériés fédéraux durant lesquels les actions continuent de coter normalement. Reste du monde : les places étrangères suivent leurs propres calendriers et les futures sur indices cotent presque 24 heures sur 24. C’est ainsi qu’un titre peut annoncer que « les actions baissent » à 3 h ET alors que toutes les Bourses américaines sont fermées. Les horaires étendus autour de chaque séance américaine vont de 4 h à 9 h 30 et de 16 h à 20 h ET. Les volumes y sont plus faibles et les spreads plus larges ; le fonctionnement est expliqué dans le guide des horaires étendus.
FAQ
La Bourse est-elle ouverte en ce moment ?
À la dernière actualisation des données de cette page, à 09:00 ET le 2026-09-04, le statut calculé était PREMARKET. Après cet horodatage, la règle est simple : du lundi au vendredi, de 9 h 30 à 16 h 00 ET, hors dates figurant dans le tableau des jours fériés ci-dessus.
La Bourse sera-t-elle ouverte demain ?
Demain correspond à une séance normale, sauf si la date tombe un samedi, un dimanche ou un jour de fermeture figurant dans le tableau ci-dessus. La prochaine séance normale du calendrier, à la date de l’actualisation de cette page, en incluant aujourd’hui lorsque la Bourse est ouverte, est 2026-09-04.
La Bourse est-elle ouverte la veille de Noël ?
Lorsque le 24 décembre tombe un jour ouvré, les Bourses américaines tiennent généralement une séance écourtée, qui se termine à 13 h 00 ET. Lorsque cette date tombe un week-end, aucune séance n’a lieu. Le jour de Noël est toujours un jour de fermeture complet. Les dates exactes de cette année figurent dans le tableau du calendrier ci-dessus.
La Bourse est-elle ouverte le Black Friday ?
Oui. Le vendredi qui suit Thanksgiving est une demi-séance programmée : le trading régulier se termine à 13 h 00 ET au lieu de 16 h 00, soit environ 210 barres d’une minute dans les prints, contre 390.
Le marché obligataire est-il ouvert aujourd’hui ?
En général lorsque les actions cotent, mais pas toujours. Le marché des Treasuries suit le calendrier de la SIFMA : il reprend tous les jours fériés de la Bourse, ainsi que Columbus Day et Veterans Day, avec des clôtures anticipées plus fréquentes, parfois dès 14 h 00. Sur les douze derniers mois, les données montrent 2 jours ouvrés où les actions ont coté mais où les rendements des Treasuries n’ont pas fait l’objet de prints.
Chaque panneau ci-dessus correspond à une requête stockée et versionnée, avec son SQL exact affiché dessous. Développez un panneau pour l’auditer. Pour vérifier vous-même une date, une séance ou un écart, posez votre question en français courant sur le terminal Strasmore.