@@DATEFIRST |
Première date |
---|---|
SQL Server | Microsoft SQL Server |
Syntaxe
@@DATEFIRST |
Description
Cette fonction permet de retourner la valeur actuelle de SET DATEFIRST, pour une session spécifique.
Remarques
- Retourne le jour de la semaine défini comme premier jour : @@DATEFIRST retourne un entier compris entre 1 (lundi) et 7 (dimanche) indiquant le jour actuellement configuré comme début de semaine. Cette valeur influence les fonctions de manipulation de dates comme DATEPART(dw, ...), qui renvoie le jour de la semaine relatif à ce paramètre.
- Peut être modifié avec SET DATEFIRST : La valeur retournée par @@DATEFIRST est définie par l'instruction SET DATEFIRST. Par défaut, elle dépend de la langue de session (SET LANGUAGE), mais elle peut être changée localement dans une session pour modifier le comportement des fonctions temporelles sans affecter les autres utilisateurs.
- Essentiel pour les calculs de jours de la semaine : Lorsqu'on utilise des fonctions comme DATEPART(dw, ...) pour déterminer si une date est un lundi ou un dimanche, la valeur de @@DATEFIRST est cruciale. Si elle est mal configurée, les résultats peuvent être incorrects, ce qui peut fausser les rapports ou les agrégations hebdomadaires.
- Dépend du paramétrage linguistique du serveur ou de la session : Le paramètre @@DATEFIRST est sensible à la langue courante de la session SQL (SET LANGUAGE). Par exemple, en anglais, le dimanche (7) est généralement le premier jour de la semaine, tandis qu'en français, c'est souvent le lundi (1). Ce comportement peut varier selon la culture.
- Utilisé dans les rapports hebdomadaires ou analytiques : Dans les requêtes de rapport où l'on regroupe les données par semaine ou par jour de la semaine, connaître la valeur de @@DATEFIRST garantit la cohérence des calculs. Sans cette information, deux utilisateurs peuvent obtenir des résultats différents à partir des mêmes données.
- Particulièrement utile dans les applications multilingues : Dans une application SQL Server utilisée par des utilisateurs dans différentes régions du monde, @@DATEFIRST permet d'ajuster dynamiquement les calculs de date pour correspondre aux conventions locales. Il peut être utilisé pour personnaliser l'expérience utilisateur.
- Ne change pas automatiquement selon la machine cliente : Même si un client utilise une interface configurée pour une région donnée, la valeur de @@DATEFIRST dépend uniquement des paramètres de la session SQL. Elle ne s'ajuste pas automatiquement en fonction du fuseau horaire ou des paramètres régionaux du client à distance.
- Peut affecter les index sur les colonnes de dates : Si l'on utilise DATEPART(dw, ...) dans des clauses WHERE ou dans des index calculés, la valeur de @@DATEFIRST peut rendre les requêtes non déterministes. Cela peut empêcher l'utilisation efficace des index ou poser des problèmes de cohérence entre environnements.
Dernière mise à jour : Jeudi, le 23 Septembre 2021