Comment définir le lundi comme premier jour de la semaine dans SQL Server
Je suis en cours d'exécution de SQL Server 2008 sur un ordinateur avec les paramètres régionaux qui ont lundi est le premier jour de la semaine. Si je créer une colonne calculée dans un tableau pour calculer le jour de la semaine pour un champ de date puis-je obtenir 2 pour un lundi date au lieu de 1.
Est-il une propriété de la table ou de la base de données ou un serveur que je dois mettre ?
OriginalL'auteur Clipper87 | 2013-11-17
Vous devez vous connecter pour publier un commentaire.
Le premier jour de la semaine est basé sur les paramètres de langue du serveur. Le réglage par défaut de l'anglais est 7 (dimanche)
Vous pouvez trouver de l'actuel premier jour de la semaine, en utilisant
SELECT @@DATEFIRST
Toutefois, vous pouvez utiliser
DATEFIRST
pour cela. Il suffit de le mettre en haut de votre requêteSET DATEFIRST 1;
ce jeux, du lundi au premier jour de la semaine pour la connexion en cours.http://technet.microsoft.com/en-us/library/ms181598.aspx
Merci Sam. Je me demande comment cela fonctionne avec le regroupement de connexions... est le pool de connexion assez intelligents pour le segment de connexions ouvertes sur cette base, ou la connexion sera remis au gestionnaire de pool de connexion et puis d'autres utilisateurs de la piscine de façon "aléatoire" obtenir de début de la journée?.... pas quelque chose que j'ai le temps de jouer avec, mais peut-être intéressant de regarder dans si vous avez le temps, serait peut-être ajouter beaucoup de valeur pour votre réponse 🙂
OriginalL'auteur Sam
Simplement défini dans la requête
SET DATEFIRST 1;
Valeur
Premier jour de la semaine est
1 le lundi
2 mardi
3 mercredi
4 jeudi
5 vendredi
6 samedi
7 (par défaut, en anglais AMÉRICAIN) dimanche
OriginalL'auteur Coder
Une situation horrible....Dire que vous utilisez un serveur partagé, et les applications sont déplacés à différents serveurs en fonction des charges et pour une raison quelconque un serveur était configuré avec un autre firstDate pour une autre application....et vous êtes de retour le jour de la semaine dans une fonction de table (c'est à dire ne peut pas définir de firstdate dans cette fonction). Ce sera toujours garantir le lundi comme le premier jour.
OriginalL'auteur Donald Detelj
Vous pouvez utiliser
DATEPART(dw, GETDATE())
, mais sachez que le résultat va s'appuyer sur paramètre SQL server@@DATEFIRST
valeur qui est le premier jour de la semaine réglage (En Europe, la valeur par défaut 7, qui est le dimanche).Alternative consiste à spécifier explicitement le premier jour de la semaine de la valeur de paramètre et ne pas dépendre de
@@DATEFIRST
réglage. Vous pouvez utiliser la formule suivante pour réaliser que lorsque le besoin:où
@WeekStartDay
est le premier jour de la semaine que vous voulez pour votre système (de 1 à 7, ce qui signifie, du lundi au dimanche).J'ai enveloppé en-dessous de la fonction, de sorte que nous pouvons les réutiliser facilement:
Exemple d'utilisation:
GetDayInWeek('2019-02-04 00:00:00', 1)
Il est équivalente à la suivante (mais indépendant de DATEFIRST réglage):
OriginalL'auteur Minh Nguyen