Question

Comment exclure les valeurs d'une colonne DateTime qui sont le samedi ou le dimanche?

Par exemple, en fonction des données suivantes:

date_created
'2009-11-26 09:00:00'  -- Thursday
'2009-11-27 09:00:00'  -- Friday
'2009-11-28 09:00:00'  -- Saturday
'2009-11-29 09:00:00'  -- Sunday
'2009-11-30 09:00:00'  -- Monday

voici le résultat que je recherche:

date_created
'2009-11-26 09:00:00'  -- Thursday
'2009-11-27 09:00:00'  -- Friday
'2009-11-30 09:00:00'  -- Monday

Merci!

Était-ce utile?

La solution

Lorsque vous utilisez des calculs de jour de la semaine, il est important de prendre en compte l'actuel DATEFIRST paramètres. Cette requête exclut toujours correctement les week-ends, à l'aide de @@ DATEFIRST pour prendre en compte tout réglage possible pour le premier jour de la semaine.

SELECT *
FROM your_table
WHERE ((DATEPART(dw, date_created) + @@DATEFIRST) % 7) NOT IN (0, 1)

Autres conseils

SELECT date_created
FROM your_table
WHERE DATENAME(dw, date_created) NOT IN ('Saturday', 'Sunday')

En supposant que vous utilisez SQL Server, utilisez DATEPART avec dw:

SELECT date_created
FROM your_table
WHERE DATEPART(dw, date_created) NOT IN (1, 7);

EDIT: Je dois signaler que la valeur numérique réelle renvoyée par DATEPART (dw) est déterminée par la valeur définie à l'aide de SET DATEFIRST:
http://msdn.microsoft.com/en-us/library/ms181598.aspx

Essayez la fonction DATENAME () :

select [date_created]
from table
where DATENAME(WEEKDAY, [date_created]) <> 'Saturday'
  and DATENAME(WEEKDAY, [date_created]) <> 'Sunday'

La réponse dépend de la configuration de la semaine de démarrage de votre serveur. Il est donc soit

SELECT [date_created] FROM table WHERE DATEPART(w,[date_created]) NOT IN (7,1)

si le dimanche est le premier jour de la semaine pour votre serveur

ou

SELECT [date_created] FROM table WHERE DATEPART(w,[date_created]) NOT IN (6,7)

si lundi est le premier jour de la semaine pour votre serveur

Commentez si vous avez des questions: -)

Calculer les jours de congé dans une colonne du tableau comme valeur par défaut - mis à jour

Si vous utilisez SQL, voici la requête qui peut vous aider: http: //gallery.technet.microsoft.com/Calculate ...

Essayez ce code

select (DATEDIFF(DD,'2014-08-01','2014-08-14')+1)- (DATEDIFF(WK,'2014-08-01','2014-08-14')* 2)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top