War diese Seite hilfreich?
Ihr Feedback ist uns wichtig. Teilen Sie uns Ihre Meinung mit.
Weiteres Feedback?
1500 verbleibende Zeichen
Exportieren (0) Drucken
Alle erweitern

DATEPART (Transact-SQL)

Gibt eine ganze Zahl zurück, die den angegebenen datepart-Wert des angegebenen date-Werts darstellt.

Eine Übersicht über alle Datums- und Uhrzeitdatentypen und die zugehörigen Funktionen von Transact-SQL finden Sie unter Datums- und Uhrzeitfunktionen (Transact-SQL). Informationen und Beispiele, die für alle Datums- und Uhrzeitdatentypen und zugehörige Funktionen gelten, finden Sie unter Verwenden von Datums- und Zeitdaten.

Themenlink (Symbol) Transact-SQL-Syntaxkonventionen


DATEPART ( datepart , date )

datepart

Der Teil von date (ein Datum oder ein Uhrzeitwert), für den ein integer zurückgegeben wird. In der folgenden Tabelle sind alle gültigen datepart-Argumente aufgelistet. Benutzerdefinierte Variablenentsprechungen sind nicht gültig.

datepart

Abkürzungen

year

yy, yyyy

quarter

qq, q

month

mm, m

dayofyear

dy, y

day

dd, d

week

wk, ww

weekday

dw

hour

hh

minute

mi, n

second

ss, s

millisecond

ms

microsecond

mcs

nanosecond

ns

TZoffset

tz

ISO_WEEK

isowk, isoww

date

Ein Ausdruck, der in einen der Werte time, date, smalldatetime, datetime, datetime2 oder datetimeoffset aufgelöst werden kann. Bei date kann es sich um einen Ausdruck, einen Spaltenausdruck, eine benutzerdefinierte Variable oder ein Zeichenfolgenliteral handeln.

Verwenden Sie vierstellige Jahreszahlen, um Mehrdeutigkeit zu vermeiden. Informationen zu zweistelligen Jahreszahlen finden Sie unter two digit year cutoff (Option).

Jedes datepart-Argument und die zugehörigen Abkürzungen geben denselben Wert zurück.

Der Rückgabewert hängt von der Sprachumgebung ab, die durch SET LANGUAGE und durch die Standardsprache der Anmeldung festgelegt wurde. Wenn date ein Zeichenfolgenliteral für einige Formate darstellt, hängt der Rückgabewert von dem Format ab, das mit SET DATEFORMAT festgelegt wurde. SET DATEFORMAT wirkt sich nicht auf den Rückgabewert aus, wenn das Datum ein Spaltenausdruck für Daten vom Typ Datum oder Uhrzeit darstellt.

In der folgenden Tabelle werden alle datepart-Argumente mit den entsprechenden Rückgabewerten für die Anweisung SELECT DATEPART(datepart,'2007-10-30 12:15:32.1234567 +05:10') aufgelistet. Der Datentyp des date-Arguments ist datetimeoffset(7). Der nanosecond datepart-Rückgabewert verfügt über 9 Dezimalstellen (,123456700), wobei die letzten beiden Stellen immer 00 sind.

datepart

Rückgabewert

year, yyyy, yy

2007

quarter, qq, q

4

month, mm, m

10

dayofyear, dy, y

303

day, dd, d

30

week, wk, ww

45

weekday, dw

1

hour, hh

12

minute, n

15

second, ss, s

32

millisecond, ms

123

microsecond, mcs

123456

nanosecond, ns

123456700

TZoffset, tz

310

Wenn für datepart entweder week (wk, ww) oder weekday (dw) angegeben wurde, hängt der Rückgabewert von dem Wert ab, der durch SET DATEFIRST festgelegt wurde.

Der 1. Januar eines Jahres definiert die Anfangszahl für week datepart. Beispiel: DATEPART (wk, 'Jan 1, xxxx') = 1, wobei xxxx ein beliebiges Jahr ist.

In der folgenden Tabelle werden für jedes SET DATEFIRST-Argument der Rückgabewert von week und weekday datepart für '2007-04-21 ' aufgelistet. Der 1. Januar ist im Jahr 2007 ein Montag. Der 21. April ist im Jahr 2007 ein Samstag. SET DATEFIRST 7 (Sonntag) ist die Standardeinstellung für Englisch (USA).

SET DATEFIRST

Argument

week

zurückgegeben

weekday

zurückgegeben

1

16

6

2

17

5

3

17

4

4

17

3

5

17

2

6

17

1

7

16

7

Die für DATEPART (year, date), (month, date) und DATEPART (day, date) zurückgegebenen Werte entsprechen den jeweiligen Rückgabewerten der Funktionen YEAR, MONTH und DAY.

ISO 8601 schließt das ISO-Wochensystem zur Nummerierung von Wochen ein. Die einzelnen Wochen werden mit dem Jahr verknüpft, in dem Donnerstag auftritt. Beispielsweise startet die Woche 1 im Jahr 2004 (2004W01) am 29. Dezember 2003 (Montag) und endet am 4. Januar 2004 (Sonntag). Die höchste Wochennummer kann in einem Jahr 52 oder 53 sein. Diese Art der Nummerierung wird in der Regel in europäischen Ländern bzw. Regionen verwendet. In anderen Ländern wird sie eher selten angewendet.

Das Nummerierungssystem in anderen Ländern oder Regionen entspricht möglicherweise nicht dem ISO-Standard. Es gibt mindestens sechs Möglichkeiten, wie in der folgenden Tabelle dargestellt.

Erster Tag der Woche

Erste Woche im Jahr enthält

Doppelt zugewiesene Wochen

Verwendet von/in

Sonntag

1. Januar

Erster Samstag

1–7 Tage im Jahr

Ja

USA

Montag

1. Januar

Erster Sonntag

1–7 Tage im Jahr

Ja

Die meisten Länder Europas und Großbritannien

Montag

4. Januar

Erster Donnerstag

4–7 Tage im Jahr

Nein

ISO 8601, Norwegen und Schweden

Montag

7. Januar

Erster Montag

4–7 Tage im Jahr

Nein

Mittwoch

1. Januar

Erster Dienstag

1–7 Tage im Jahr

Ja

Samstag

1. Januar

Erster Freitag

1–7 Tage im Jahr

Ja

TZoffset (tz) wird als Anzahl von Minuten (signiert) zurückgegeben. Die folgende Anweisung gibt ein Zeitzonenoffset von 310 Minuten zurück.

SELECT DATEPART (TZoffset, 2007-05-10  00:00:01.1234567 +05:10);

Wenn das datepart-Argument TZoffset (tz) lautet und das date-Argument nicht dem Datentyp datetimeoffset entspricht, wird NULL zurückgegeben.

Wenn date den Wert smalldatetime aufweist, werden Sekunden als 00 zurückgegeben.

Enthält der Datentyp im date-Argument keine Angabe zu datepart, wird für datepart der Standardwert zurückgegeben.

Beispielsweise wird bei Jahr-Monat-Tag für jeden date-Datentyp standardmäßig der Wert 01900-01-01 angegeben. Die folgende Anweisung verfügt über datepart-Argumente für datepart, ein time-Argument für date und gibt 1900, 1, 1, 1, 2 zurück.

SELECT DATEPART(year, '12:10:30.123')
    ,DATEPART(month, '12:10:30.123')
    ,DATEPART(day, '12:10:30.123')
    ,DATEPART(dayofyear, '12:10:30.123')
    ,DATEPART(weekday, '12:10:30.123');

Bei Stunde-Minute-Sekunde wird für den time-Datentyp standardmäßig der Wert 00:00:00 angegeben. Die folgende Anweisung verfügt über timepart-Argumente für datepart, ein date-Argument für date und gibt 0, 0, 0 zurück.

SELECT DATEPART(hour, '2007-06-01')
    ,DATEPART(minute, '2007-06-01')
    ,DATEPART(second, '2007-06-01');

Die folgenden Anweisungen verdeutlichen, wie Sekundenbruchteile zurückgegeben werden:

SELECT DATEPART(millisecond, '00:00:01.1234567'); -- Returns 123
SELECT DATEPART(microsecond, '00:00:01.1234567'); -- Returns 123456
SELECT DATEPART(nanosecond,  '00:00:01.1234567'); -- Returns 123456700

DATEPART kann in den Klauseln WHERE, HAVING, GROUP BY und ORDER BY der SELECT-Liste verwendet werden. In SQL Server 2008 wandelt DATEPART Zeichenfolgenliterale implizit als datetime2-Typen um. Dies bedeutet, dass DATEPART das YDM-Format nicht mehr unterstützt, wenn das Datum als Zeichenfolge übergeben wird. Sie müssen die Zeichenfolge explizit in einen datetime- oder smalldatetime-Typ umwandeln, wenn das YDM-Format verwendet werden soll.

Das folgende Beispiel gibt das Basisjahr zurück. Das Basisjahr ist hilfreich für Datumsberechnungen. Im Beispiel wird das Datum in Form einer Zahl angegeben. Beachten Sie, dass SQL Server den Wert 0 als 1. Januar 1900 interpretiert. 

SELECT DATEPART(year, 0), DATEPART(month, 0), DATEPART(day, 0);
-- Returns: 1900    1    1 */

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft