DATEDIFF (espressione SSIS)
Viene restituito il numero dei limiti di data e ora compresi tra due date specificate. Il parametro datepart identifica i limiti di data e ora da confrontare.
Sintassi
DATEDIFF(datepart, startdate, endate)
Argomenti
datepart
Parametro che specifica per quale parte della data si desidera eseguire il confronto e restituire un valore.startdate
Data di inizio dell'intervallo.endate
Data di fine dell'intervallo.
Tipi restituiti
DT_I4
Osservazioni
Nella tabella seguente sono elencate le parti della data e le abbreviazioni riconosciute dall'analizzatore di espressioni.
Datepart |
Abbreviazioni |
---|---|
Year |
yy, yyyy |
Quarter |
qq, q |
Month |
mm, m |
Dayofyear |
dy, y |
Day |
dd, d |
Week |
wk, ww |
Weekday |
dw, w |
Ora |
Hh |
Minuto |
mi, n |
Secondo |
ss, s |
Millisecond |
Ms |
Se un argomento qualsiasi è Null, DATEDIFF restituirà Null.
Per i valori letterali di data è necessario eseguire il cast esplicito a uno dei tipi di dati date. Per ulteriori informazioni, vedere Tipi di dati di Integration Services.
Se la data non è valida, l'ora o la data non è una stringa oppure la data di inizio o fine non è una data, verrà generato un errore.
Se la data di fine è anteriore a quella di inizio, la funzione restituirà un numero negativo. Se le date di inizio e di fine coincidono o rientrano nello stesso intervallo, la funzione restituirà zero.
Esempi di espressione SSIS
In questo esempio viene calcolato il numero dei giorni tra due valori letterali di data. Se la data è in formato "mm/gg/aaaa", la funzione restituirà 7.
DATEDIFF("dd", (DT_DBTIMESTAMP)"8/1/2003", (DT_DBTIMESTAMP)"8/8/2003")
In questo esempio viene restituito il numero dei mesi tra un valore letterale data e la data corrente.
DATEDIFF("mm", (DT_DBTIMESTAMP)"8/1/2003",GETDATE())
In questo esempio viene restituito il numero delle settimane tra la data nella colonna ModifiedDate e quella nella variabile YearEndDate. Se YearEndDate ha tipo di dati date, non sarà necessario eseguire un cast esplicito.
DATEDIFF("Week", ModifiedDate,@YearEndDate)