Condividi tramite


DATEDIFF (espressione SSIS)

Si applica a: SQL Server SSIS Integration Runtime in Azure Data Factory

Restituisce il numero di unità di data e ora trascorse 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.

parte di una data Abbreviations
Anno yy, yyyy
Trimestrale qq, q
Month mm, m
Dayofyear dy, y
Giorno dd, d
Settimana wk, ww
Giorno feriale dw, w
Ore Hh
Minute 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 altre 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)  

Vedi anche

DATEADD (espressione SSIS)
DATEPART (espressione SSIS)
DAY (espressione SSIS)
MONTH (espressione SSIS)
YEAR (espressione SSIS)
Funzioni (espressione SSIS)