Imparare a utilizzare le funzioni di data di SQL Server

Le funzioni di data di SQL server forniscono un insieme di funzioni che è possibile utilizzare per manipolare le date. La funzione viene utilizzata per un’ampia varietà di operazioni come l’aggiunta di settimane a una data, il calcolo della differenza tra due date o la scomposizione di una data nelle sue parti fondamentali.

Se non hai familiarità con le funzioni SQL, ti consiglio di fissare l’introduzione alle funzioni integrate di SQL Server.

Per ottenere il massimo da questa e dalle altre nostre lezioni, assicurati di esercitarti usando gli esempi!,

Tutti gli esempi di questa lezione sono basati su Microsoft SQL Server Management Studio e il database AdventureWorks2012. È possibile iniziare a utilizzare questi strumenti gratuiti utilizzando la mia guida Per iniziare a utilizzare SQL Server.

Introduzione alle funzioni di data di SQL Server

Ci sono oltre venticinque diverse funzioni classificate come funzioni di data in SQL server.

Tutte le funzioni sono elencate nella pagina Funzioni data (Transact-SQL). Consiglierei di visitare quella pagina per conoscere ogni funzione.,

Piuttosto che ribadire quel materiale, ci concentreremo sulle funzioni che ho visto in comunemente usate nel mondo degli affari.

Nelle seguenti tabelle ho classificato le funzioni e le ho codificate a colori. Il codice colore corrisponde al cappuccio probabile che si utilizzerebbe quella particolare funzione in un ambiente aziendale. Il verde è più probabile che venga utilizzato e il rosso meno.

Questa non è una scala rigorosa e tutte le funzioni hanno un uso in alcuni casi aziendali, ma volevo un modo per aiutarti a ridurre il campo a quelli più rilevanti.,

Ecco il mio tentativo:

DateTime Functons Più Comuni sono di colore Verde

Funzioni utilizzate per ottenere la Data Corrente e l’Ora

Di tutte le funzioni che vengono utilizzate per restituire la data e l’ora corrente, la funzione GETDATE è la funzione più comunemente utilizzata.

GETDATE

La funzione GETDATE viene utilizzata per restituire i dati e l’ora correnti del server. Questa funzione diventa utile quando è necessario confrontare i dati come l’ultima data di pagamento con la data corrente.,

La forma generale della funzione GETDATE è

GETDATE()

Ecco un esempio usando GETDATE

SELECT GETDATE()

Che restituisce 2015-08-09 21:55:00.477

Un esempio più utile è usare GETDATE con DATEDIFF o DATEADD. Scopri DATEDIFF per un esempio più completo.

Funzioni per ottenere parti di data

Le parti di data si riferiscono a vari componenti di una data come l’anno, il mese o il giorno. Le parti della data sono utilizzate in diverse funzioni in questa sezione e in altre., Ecco una tabella di parti di data che è possibile utilizzare in funzione come DATENAME, DATEPART, DATEDIFF e DATEADD.

Datepart Values

I nomi sono abbastanza auto-esplicativi. Ogni parte della data corrisponde a un periodo ben noto come il mese o l’ora.

DATENAME

DATENAME è una funzione molto utile che viene utilizzata per restituire varie parti di una data come il nome del mese o il giorno della settimana corrispondente a una data particolare.,

La forma generale di DATENAME è

DATENAME(date part, value)

Dove la parte data corrisponde a un elenco di parti predefinite e il valore è la data con cui si sta lavorando.

Questa funzione restituisce un valore di carattere.

Ecco un esempio che mostra varie parti della data in azione.

Supponendo GETDATE restituisce 2015-08-10 12:56:25.313 l’esempio di risultati di query

DATENAME Risultati

Nota: Ci sono molte altre parti della data è possibile utilizzare con DATENAME., È possibile trovare un elenco completo sul sito MSDN.

Ecco un esempio che mostra come è possibile utilizzare DATANAME per eseguire alcune analisi a livello di riepilogo degli ordini.

Supponiamo che il responsabile vendite desideri un riepilogo delle vendite settimanali. Utilizzando la funzione DATENAME possiamo fornire tali informazioni.

Ecco i risultati

DATENAME – Avviso OrderWeek è ordinata come un valore di carattere

voglio sottolineare, che anche se siamo ordinati per anno e la settimana, le settimane sembrano essere fuori ordine., Questo perché OrderWeek restituito è un valore di carattere. Per ordinare quindi numericamente dobbiamo convertire il risultato in un valore numerico.

Potremmo facilmente convertire il valore all’interno della clausola ORDER BY, ma ciò non è necessario una volta appreso di DATEPART

DATEPART

Restituisce un numero intero che rappresenta la parte specificata di una data. Funziona in modo molto simile a DATENAME, in quanto si specifica una parte e un valore di data, tuttavia, piuttosto che restituire un valore di testo, come “Luglio”, restituisce 7.,

La forma generale di DATEPART è

DATEPART(date part, value)

Dove la parte data corrisponde a un elenco di parti predefinite e il valore è la data con cui si sta lavorando.

Questa funzione restituisce un numero intero.

Ecco un esempio che mostra varie parti della data in azione.

Supponendo GETDATE restituisce 2015-08-10 12:56:25.313 l’esempio di risultati di query

DATEPART Risultati

Nota: Ci sono molte altre parti della data è possibile utilizzare con DATEPART., È possibile trovare un elenco completo sul sito MSDN.

Possiamo anche ottenere un riepilogo dei totali di vendita utilizzando DATEPART come abbiamo fatto per DATENAME. Questa è la query

Si noti che questi risultati sono ordinati in modo corretto in base alla settimana:

DATEPART Risultati Ordinati in Ordine Numerico

il GIORNO, il MESE, l’ANNO

Il GIORNO, il MESE, il e l’ANNO funzioni di rendimento, sulla base di una data, il giorno, il mese o l’anno come numero intero.

La forma generale è la stessa per tutte e tre le funzioni., Per brevità mostreremo solo il GIORNO, le altre due funzioni funzionano in modo simile.

Ecco la sua forma generale:

DAY(value)

Dove il valore è la data con cui lavorare.

Ecco un esempio che mostra queste funzioni in gioco

SELECT HireDate, YEAR(HireDate) as HireYear, MONTH(HireDate) HireMonth, DAY(HireDate) as HireDayFROM HumanResources.Employee

i Cui risultati sono:

il GIORNO, il MESE, e risultati ANNO

avrete notato che ANNO(valore) è breve mano DATEPART(anno, valore)., Entrambi restituiscono lo stesso risultato, ecco un’istruzione SQL che puoi provare:

SELECT HireDate, YEAR(HireDate) as HireYear, DATEPART(year, HireDate) as HireYearFromDatePartFROM HumanResources.Employee

Troverai equivalenze simili per MESE e GIORNO.

Modificare e trovare la differenza nelle date

DATEDIFF

La funzione DATEDIFF restituisce il numero di anni, mesi, settimane o giorni tra due date.

La forma generale per DATEDIFF è

DATEDIFF(date part, start value, end value)

Dove la parte data corrisponde a un elenco di parti date predefinite come anno, mese, settimane e giorni.

La differenza viene calcolata tra il valore iniziale e il valore finale.,

Questa funzione può sembrare un po ‘ complicata, ma vale davvero la pena capirla in quanto ha molti usi pratici in SQL.

Puoi usarlo per calcolare il numero di giorni in cui una fattura è scaduta o il numero di giorni o settimane tra due date.

Considera questo esempio:

Il Vice Presidente delle risorse Umane vuole premiare tutti i dipendenti con un premio anni di servizio. Lei vorrebbe di prodotto un rapporto di tutti i dipendenti con più di dieci anni di servizio.,

Per fare questo useremo il rapporto DATEDIFF sia per visualizzare il numero di anni di servizio e anche per filtrare quelli con meno di dieci anni di servizio.

Ecco il SQL

SELECT NationalIDNumber, HireDate, DATEDIFF(year, HireDate, GETDATE()) YearsOfServiceFROM HumanResources.EmployeeWHERE DATEDIFF(year, HireDate, GETDATE()) >= 10ORDER BY YearsOfService DESC

i Cui risultati sono

DATEDIFF Risultati

DATEADD

La funzione DATEADD è utilizzato per aggiungere anni, mesi, settimane o giorni tra una data.,

Il modulo generale per DATEADD è

DATEADD(parte data, numero, valore)

Dove la parte data corrisponde a un elenco di parti date predefinite come anno, mese, settimane e giorni e il numero specifica il numero di parti date da aggiungere al valore.

Se il numero è positivo, quel numero di parti di data viene aggiunto al valore.

Se il numero è negativo, allora in vigore le parti di data vengono sottratti dal valore.

Questa funzione può sembrare un po ‘ complicata, ma vale davvero la pena capirla in quanto ha molti usi pratici in SQL.,

È possibile utilizzarlo per calcolare il numero di giorni fino a quando la fattura è scaduta, o il numero di giorni o settimane nel futuro o passato.

Considera questo esempio:

Il responsabile delle vendite ha parlato con il responsabile della produzione della vendita di articoli sul web. Vogliono produrre le moto come sono ordinati. Se le bici sono state ordinate oggi, quando potrebbero essere disponibili per la spedizione al cliente?

Se guardi la tabella dei prodotti vedrai che c’è un campo DaysToManufacture. Usando questo con DATEADD in combinazione con GETDATE () possiamo calcolare il numero di giorni nel futuro.,

SELECT NAME, DaysToManufacture, GETDATE() as Today, DATEADD(day, DaysToManufacture, GETDATE()) EarliestDateFROM Production.ProductWHERE DaysToManufacture > 1

The results for this are

Use DATEADD to add DAYS to a DATE

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *