Come usare DATEDIFF per ottenere l'età di una persona in Microsoft SQL 2005

April 1

Come usare DATEDIFF per ottenere l'età di una persona in Microsoft SQL 2005


Microsoft SQL Server 2005 supporta la funzione DATEDIFF per calcolare la quantità di tempo trascorso tra due date. Questa è una funzione utile per molte cose, come calcolare l'età di un visitatore del sito. Utilizzando DATEDIFF richiede specificando il tipo di confine a contare in anni, mesi, giorni o una delle altre sei opzioni, insieme con la date di inizio e fine. Un confine è l'intervallo in cui si desidera che i risultati restituiti - in questo caso, il numero di anni o giorni o minuti. La funzione restituisce un valore intero che rappresenta il numero dei tuoi confini scelti incrociate.

istruzione

1 Determinare la data di inizio e di fine. Per calcolare l'età attuale di una persona, utilizzare il compleanno come data di inizio e la data corrente per la data di fine.

2 Determinare il livello di specificità che si desidera sul risultato restituito. Se si desidera che l'età attuale negli anni, usare 'anno' per la parte data. Se si desidera che l'età in anni e mesi, calcolare la differenza in mesi, e dividere per 12 per ottenere anni - il resto è il numero di mesi dopo la. È possibile calcolare in qualsiasi intervallo supportato, fino a millisecondi.

3 Aprire l'applicazione query desiderata. Questo potrebbe essere l'editor di query di Microsoft SQL Server Management Studio, o l'interfaccia applicazione web desiderato.

4 Digitare:

SELEZIONE DATEDIFF (boundry, data di inizio, data di fine)

Per calcolare l'età per tutto il giorno corrente, è possibile utilizzare la funzione GETDATE () per ottenere il valore della data corrente per la data di fine.

esempio:

SELEZIONE DATEDIFF (anno, '05 / 12/1920 ', GETDATE ())

L'intervallo, o di confine, può essere uno qualsiasi dei nove opzioni disponibili da Microsoft, tra cui l'anno, il mese, il giorno e gli altri. Vedi riferimenti, di seguito, per una lista completa.

Consigli e avvertenze

  • La funzione DATEDIFF è lo stesso in SQL 2008, grazie alla possibilità di calcolare le differenze di tempo in microsecondi (SCM) o nanosecondi (ns).
  • Poiché DATEDIFF restituisce un valore intero, il numero massimo di confini incrociate che può essere calcolato utilizzando questa funzione è limitata al valore massimo di un valore intero. Microsoft elenca le seguenti limitazioni: "Per millisecondi, il numero massimo è di 24 giorni, 20 ore, 31 minuti e 23.647 secondi per i secondi, il numero massimo è di 68 anni.".