Valuta il contenuto e lascia un commento
MSDN
MSDN Library
SQL Server
SQL Server 2008
 DATEPART (Transact-SQL)
Contenuti community
In questa sezione
Statistiche Annotazioni (0)
Comprimi tutto/Espandi tutto Comprimi tutto
Sono disponibili anche altre versioni per quanto indicato di seguito:
Documentazione in linea di SQL Server 2008 (luglio 2009)
DATEPART (Transact-SQL)

Restituisce un valore integer che rappresenta il valore datepart dell'argomento date specificato.

Per una panoramica di tutti i tipi di dati e delle funzioni di data e ora Transact-SQL, vedere Funzioni e tipi di dati di data e ora (Transact-SQL). Per informazioni ed esempi comuni ai tipi di dati e alle funzioni di data e ora, vedere Utilizzo di dati relativi a data e ora.

Icona di collegamento a un argomento Convenzioni della sintassi Transact-SQL

DATEPART ( datepart , date )
datepart

Parte di date (un valore di data o ora) per la quale verrà restituito un integer. Nella tabella seguente vengono elencati tutti gli argomenti datepart validi. Variabili definite dall'utente equivalenti non sono valide.

datepart Abbreviazioni

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

Espressione che può essere risolta in un valore di tipo time, date, smalldatetime, datetime, datetime2 o datetimeoffset. I valori di tipo date possono essere costituiti da un'espressione, da un'espressione di colonna, da una variabile definita dall'utente o da un valore letterale stringa.

Per evitare ambiguità, esprimere gli anni nel formato a quattro cifre. Per informazioni sul formato dell'anno a due cifre, vedere Opzione two digit year cutoff.

int

Ogni valore datepart e le relative abbreviazioni restituiscono lo stesso valore.

Il valore restituito dipende dalla lingua impostata con SET LANGUAGE e dalla lingua predefinita dell'account di accesso. Se date è un valore letterale stringa per alcuni formati, il valore restituito dipende dal formato specificato utilizzando SET DATEFORMAT. SET DATEFORMAT non influisce sul valore restituito quando la data è un'espressione della colonna di un tipo di dati ora e data.

Nella tabella seguente sono elencati tutti gli argomenti datepart con i corrispondenti valori restituiti per l'istruzione SELECT DATEPART(datepart,'2007-10-30 12:15:32.1234567 +05:10'). Il tipo di dati dell'argomento date è datetimeoffset(7). Il valore restituito utilizzando nanoseconddatepart ha una scala di 9 (.123456700) e le ultime due posizioni sono sempre 00.

datepart Valore restituito

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

Argomenti datepart per settimana e giorno feriale

Quando datepart è week (wk, ww) o weekday (dw), il valore restituito dipende dal valore impostato utilizzando SET DATEFIRST.

Il 1° gennaio di qualsiasi anno definisce il numero iniziale per week datepart, ad esempio DATEPART (wk, 1 gen, xxxx) = 1, dove xxxx è qualsiasi anno.

Nella tabella seguente è elencato il valore restituito per week e weekday datepart per "2007-04-21" per ogni argomento SET DATEFIRST. Il 1° gennaio dell'anno 2007 è domenica. Il 21 aprile dell'anno 2007 è sabato. SET DATEFIRST 7, domenica è l'impostazione predefinita per l'inglese (Stati Uniti).

Argomento SET DATEFIRST settimana restituita giorno feriale restituito

1

16

6

2

17

5

3

17

4

4

17

3

5

17

2

6

17

1

7

16

7

Argomenti datepart per anno, mese e giorno

I valori restituiti per DATEPART (year, date), DATEPART (month, date) e DATEPART (day, date) corrispondono a quelli restituiti rispettivamente dalle funzioni YEAR, MONTH e DAY.

datepart ISO_WEEK

ISO 8601 include il sistema settimana-relativo alla data ISO, un sistema di numerazione per settimane. Ogni settimana è associata all'anno che inizia con un giovedì. Ad esempio, la settimana 1 del 2004 (2004W01) è iniziata lunedì 29 dicembre 2003 ed è terminata domenica 4 gennaio 2004. In un anno è possibile avere al massimo 52 o 53 settimane. Questo stile di numerazione è utilizzato in genere nei paesi europei, raramente viene usato altrove.

Il sistema di numerazione nei diversi paesi potrebbe non essere conforme allo standard ISO. Ci sono almeno sei possibilità come mostra la tabella seguente

Primo giorno della settimana Prima settimana dell'anno Settimane assegnate due volte Utilizzato da/in

Domenica

1 gennaio,

Primo sabato,

1-7 giorni dell'anno

Stati Uniti

Lunedì

1 gennaio,

Prima domenica,

1-7 giorni dell'anno

La maggior parte di Europa e Regno Unito

Lunedì

4 gennaio,

Primo giovedì,

4-7 giorni dell'anno

No

ISO 8601, Norvegia e Svezia

Lunedì

7 gennaio,

Primo lunedì,

7 giorni dell'anno

No

Mercoledì

1 gennaio,

Primo martedì,

1-7 giorni dell'anno

Sabato

1 gennaio,

Primo venerdì,

1-7 giorni dell'anno

TZoffset

TZoffset (tz) viene restituito come numero di minuti (firmato). Nell'istruzione seguente è restituita una differenza di fuso orario di 310 minuti.

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

Se l'argomento datepart è TZoffset (tz) e l'argomento date non è di tipo di dati datetimeoffset, viene restituito il valore NULL.

Argomento date smalldatetime

Quando date è smalldatetime, i secondi vengono restituiti come 00.

Valore predefinito restituito per un datepart non incluso nell'argomento date

Se il tipo di dati dell'argomento date non ha il datepart specificato, verrà restituita l'impostazione predefinita per datepart.

Ad esempio, l'anno-mese-giorno predefinito per qualsiasi tipo di dati date è 1900-01-01. L'istruzione seguente ha argomenti di parti di data per datepart, un argomento relativo all'ora per date e restituisce 1900, 1, 1, 1, 2.

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');

Il valore ora-minuto-secondo predefinito per il tipo di dati time è 00:00:00. L'istruzione seguente ha argomenti di parti di ora per datepart, un argomento relativo alla data per date restituisce 0, 0, 0.

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

Secondi frazionari

Secondi frazionari vengono restituiti come indicato nelle istruzioni seguenti:

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

È possibile utilizzare DATEPART in un elenco di selezione e nelle clausole WHERE, HAVING, GROUP BY e ORDER BY.

Nell'esempio seguente viene restituito il valore dell'anno di base. L'anno di base è utile per i calcoli relativi alla data. Nell'esempio seguente, la data viene specificata sotto forma di numero. Si noti che SQL Server interpreta il valore 0 come 1 gennaio 1900.

SELECT DATEPART(year, 0), DATEPART(month, 0), DATEPART(day, 0);
-- Returns: 1900    1    1 */
Contenuti della community   Che cos'è Contenuti della community?
Aggiungi nuovo contenuto RSS  Annotazioni
Processing
© 2010 Microsoft Corporation. Tutti i diritti riservati. Condizioni per l'utilizzo | Marchi | Informativa sulla privacy
Page view tracker