Come formattare la data e l'ora nel server SQL

Come formattare la data e l'ora nel server SQL
Manipolare i valori della data e del tempo utilizzando i tipi di dati DateTime, Data e Time è una delle funzionalità più importanti di SQL, poiché questi tipi di dati sono progettati specificamente per archiviare tali valori. Sono spesso utilizzati in applicazioni che richiedono il calcolo e la manipolazione dei dati della data e del tempo. In questo articolo, approfondiremo questi tipi di dati.

Tipi di dati della data di base in SQL

  • DATA: Questo tipo di dati viene utilizzato per archiviare i valori della data nel formato YYYY-MM-DD. È in grado di rappresentare le date nell'intervallo del 1 gennaio 0001 al 31 dicembre 9999. I valori della data sono memorizzati in un formato compatto usando solo tre byte.
  • TEMPO: Il tipo di dati temporale viene utilizzato per archiviare i valori del tempo nel formato HH: MI: SS. È in grado di rappresentare i valori temporali nell'intervallo dalle 00:00 alle 23:59:59.
  • APPUNTAMENTO: Il tipo di dati DateTime è in grado di archiviare i valori della data e del tempo nel formato di Yyyy-Mm-DD: MI: SS. Consente ai valori nell'intervallo del 1 gennaio 1753, dalle 00:00 al 31 dicembre 9999, 23:59:59. Questo tipo di dati è utile per archiviare i timestamp come tempi di transazione o tempi di evento.
  • Piccolodatetime: Questo tipo di dati è lo stesso del tipo di dati DateTime ma con una differenza più piccola. Memorizza i valori di data e tempo, ma con un intervallo più piccolo di valori dal 1 ° gennaio 1900, dalle 00:00 al 6 giugno 2079, 23:59:59. I valori sono anche arrotondati al minuto più vicino che risparmia spazio e riduce il tempo di elaborazione. Questo tipo di dati è utile per archiviare informazioni sensibili al tempo che non richiedono un'alta precisione. Ci vogliono solo 4 byte di dati. È conservato nel formato Yyyy-MM-DD HH: MM: SS.
  • DateTime2: Questo tipo di dati è simile al tipo di dati DateTime ma con maggiore precisione e un intervallo più ampio. L'intervallo di valori è uguale a DateTime, ma può archiviare i secondi frazionari fino a 7 cifre.

Come vengono archiviate le date nel server SQL?

All'interno del server SQL, le date vengono archiviate utilizzando due numeri interi a 4 byte. L'intero iniziale corrisponde al numero di giorni precedenti o succedono alla data di base del 1 gennaio 1900. Il secondo numero intero corrisponde al numero di 1/300 di un secondo che è trascorso da mezzanotte. Ad esempio, la data "1 gennaio 2000 12:00:00 pm" è memorizzata come due numeri interi - 36.529 (il numero di giorni tra il 1 gennaio 1900 e il 1 gennaio 2000) e 43.200.000 (il numero di 1/300 ° di secondo da mezzanotte).

Il server SQL fornisce anche una serie di funzioni integrate per lavorare con date, come Dateead, DateDiff e Convert, che ci consentono di eseguire le operazioni comuni come l'aggiunta o la sottrazione degli intervalli di tempo, confrontando le date e formattazione date.

Per eseguire le query SQL su un database, in genere utilizziamo uno strumento come SQL Server Management Studio (SSMS).

Creazione di un [DBO].[Ordini] tabella

Per creare una tabella nel nostro database, dobbiamo scrivere le seguenti domande:

Crea tabella [DBO].[Ordini] (
[Ord_number] int non null
,[Ord_datetime] datetime null
,[Ord_date] data null
,[Deli_datetime] DateTime Null
,[last_visit_date] data null
)

Inserimento dei dati nel [DBO].[Ordini] tabella

Inserire i valori nella tabella usando il comando seguente:

Inserire in [DBO].[Ordini] ([ord_number], [ord_datetime], [ord_date], [Deli_datetime], [last_visit_date])
VALORI
('1', '2021-10-01 10:30:00', '2021-10-01', '2021-10-12 10:11:10', '2021-11-01'),
('2', '2021-10-01 12:45:00', '2021-10-01', '2021-10-10 14:10:11', '2021-10-15'),
('3', '2021-10-30 13:25:00', '2021-10-30', '2021-11-05 13:22:12', '2021-12-30'),
('4', '2021-09-22 16:30:00', '2021-09-22', '2021-09-25 14:12:13', '2021-12-22'),
('5', '2021-01-10 18:15:00', '2021-01-10', '2021-02-01 11:15:14', '2022-01-10'),
;

Convertire una data in stringa

Se riportiamo i valori DateTime dalla tabella, i risultati mostreranno come “2021-10-01 10:30:00.000 ". Ma se ci piace convertirlo in una stringa nel nostro formato nel codice SQL, possiamo farlo usando la seguente funzione:

SELEZIONARE
[Ord_datetime]
,Convert (varchar (20), [Ord_datetime], 22) 'order_date_string'
DA
[DBO].[ORDINI]

Produzione:

ord_datetime order_date_string
2021-10-01 10:30:00.000 10/01/21 10:30:00
2021-10-01 12:45:00.000 10/01/21 12:45:00
2021-10-30 13:25:00.000 30/10/21 13:25:00

Trovare una data specifica usando la clausola Where

Per trovare gli ordini in cui la data dell'ordine è il 1 ° dicembre 2021, dobbiamo seguire la seguente domanda:

SELEZIONARE
[Ord_number]
,[ord_date]
DA
[DBO].[ORDINI]
DOVE
[Ord_date] = '01/10/2021 '

Produzione:

ord_number ord_date
5 2021-01-10
5 2021-01-10

Separare la data dall'ora

Possiamo anche utilizzare la funzione Convert in una data per recuperare solo il valore della data specificando uno stile. Per questo, utilizziamo la seguente query:

Dichiarare @dd come DateTime
Set @dd = '2011-07-03 20:30:40'
Seleziona Convert (Varchar, @DD, 103)

Produzione:

(Nessun nome di colonna)
1 03/07/2011

Ottenere la data e l'ora correnti

Ecco un esempio di una query SQL che recupera la data e l'ora corrente utilizzando le funzioni GetDate e Current_Timestamp:

SELEZIONARE
GetDate ()
,Current_Timestamp

Produzione:

(Nessun nome di colonna) (nessun nome di colonna)
1 2023-03-04 23:44:02.883 2023-03-04 23:44:02.883

Trovare la differenza tra due date

È spesso utile trovare la differenza tra due date. Con questo, possiamo fare cose come trovare il numero di giorni tra l'ordine e una data di consegna.

Ecco un esempio:

SELEZIONARE
[ord_date]
,[Deli_datetime]
,Datediff (giorno, [ord_date], [Deli_datetime]) 'del_days'
DA
[DBO].[ORDINI]

Produzione:

Ord_date Deli_datetime del_days
1 2021-10-01 2021-10-12 10:11:10.000 11
2 2021-10-01 2021-10-10 14:10:11.000 9
3 2021-10-30 2021-11-05 13:22:12.000 6

Conclusione

Abbiamo imparato a manipolare le date, i tempi e le stringhe usando le funzioni integrate. Queste funzioni sono molto utili per eseguire calcoli e trasformazioni sui dati memorizzati nelle tabelle SQL Server. Comprendendo e usando questi tipi di dati e funzioni in modo efficace, possiamo scrivere query SQL più efficienti e potenti.