DATEDIFF (espressione SSIS)DATEDIFF (SSIS Expression)

Restituisce il numero di unità di data e ora trascorse tra due date specificate.Returns the number of date and time boundaries crossed between two specified dates. Il parametro datepart identifica i limiti di data e ora da confrontare.The datepart parameter identifies which date and time boundaries to compare.

SintassiSyntax


DATEDIFF(datepart, startdate, endate)  

ArgomentiArguments

datepartdatepart
Parametro che specifica per quale parte della data si desidera eseguire il confronto e restituire un valore.Is the parameter that specifies which part of the date to compare and return a value for.

startdatestartdate
Data di inizio dell'intervallo.Is the start date of the interval.

endateendate
Data di fine dell'intervallo.Is the end date of the interval.

Tipi restituitiResult Types

DT_I4DT_I4

OsservazioniRemarks

Nella tabella seguente sono elencate le parti della data e le abbreviazioni riconosciute dall'analizzatore di espressioni.The following table lists the dateparts and abbreviations recognized by the expression evaluator.

datepartDatepart AbbreviazioniAbbreviations
YearYear yy, yyyyyy, yyyy
QuarterQuarter qq, qqq, q
MonthMonth mm, mmm, m
DayofyearDayofyear dy, ydy, y
DayDay dd, ddd, d
WeekWeek wk, wwwk, ww
Giorno ferialeWeekday dw, wdw, w
OraHour HhHh
MinutoMinute mi, nmi, n
SecondoSecond ss, sss, s
MillisecondMillisecond MsMs

Se un argomento qualsiasi è Null, DATEDIFF restituirà Null.DATEDIFF returns a null result if any argument is null.

Per i valori letterali di data è necessario eseguire il cast esplicito a uno dei tipi di dati date.A date literal must be explicitly cast to one of the date data types. Per altre informazioni, vedere Tipi di dati di Integration Services.For more information, see Integration Services Data Types.

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.An error occurs if a date is not valid, if the date or time unit is not a string, if the start date is not a date, or if the end date is not a date.

Se la data di fine è anteriore a quella di inizio, la funzione restituirà un numero negativo.If the end date is earlier than the start date, the function returns a negative number. Se le date di inizio e di fine coincidono o rientrano nello stesso intervallo, la funzione restituirà zero.If the start and end dates are equal or fall within the same interval, the function returns zero.

Esempi di espressione SSISSSIS Expression Examples

In questo esempio viene calcolato il numero dei giorni tra due valori letterali di data.This example calculates the number of days between two date literals. Se la data è in formato "mm/gg/aaaa", la funzione restituirà 7.If the date is in "mm/dd/yyyy" format, the function returns 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.This example returns the number of months between a date literal and the current date.

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 .This example returns the number of weeks between the date in the ModifiedDate column and the YearEndDate variable. Se YearEndDate ha tipo di dati date non sarà necessario eseguire un cast esplicito.If YearEndDate has a date data type, no explicit casting is required.

DATEDIFF("Week", ModifiedDate,@YearEndDate)  

Vedere ancheSee Also

DATEADD ( Espressione SSIS ) DATEADD (SSIS Expression)
DATEPART ( Espressione SSIS ) DATEPART (SSIS Expression)
GIORNO ( Espressione SSIS ) DAY (SSIS Expression)
MESE ( Espressione SSIS ) MONTH (SSIS Expression)
ANNO ( Espressione SSIS ) YEAR (SSIS Expression)
Funzioni ( Espressione SSIS )Functions (SSIS Expression)