Frage

Wie kann ich Werte in einer Spalte DateTime ausschließen, Samstag oder Sonntag sind?

Um zum Beispiel die folgenden Daten angegeben:

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

Dies ist das Ergebnis ich suche:

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

Danke!

War es hilfreich?

Lösung

Wenn Sie mit Tag-of-Woche Berechnungen zu tun, dann ist es wichtig, die aktuelle @@DATEFIRST für jede Rechnung zu tragen mögliche Einstellung für den ersten Tag der Woche.

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

Andere Tipps

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

Angenommen, Sie SQL Server verwenden, verwenden DATEPART mit dw:

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

EDIT: ich, dass der tatsächliche zurück numerische Wert wird von DATEPART (dw) durch den Wert unter Verwendung von SETS DATEFIRST gesetzt bestimmt darauf hinweisen soll:
http://msdn.microsoft.com/en-us/library/ms181598.aspx

Versuchen Sie, die DATENAME() Funktion:

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

Die Antwort hängt von Ihrem Server Woche Start eingerichtet, so dass es entweder

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

, wenn Sonntag ist der erste Tag der Woche für den Server

oder

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

, wenn der Montag ist der erste Tag der Woche für den Server

Kommentar, wenn Sie irgendwelche Fragen haben: -)

berechnen Urlaubstag in einer Tabellenspalte als Standardwert Arbeits - aktualisiert

Wenn Sie SQL verwenden hier ist die Abfrage, die Ihnen helfen können: http: //gallery.technet.microsoft.com/Calculate ...

Versuchen Sie diesen Code

select (DATEDIFF(DD,'2014-08-01','2014-08-14')+1)- (DATEDIFF(WK,'2014-08-01','2014-08-14')* 2)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top