Tipi di dati della data di base in SQL
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:
SELEZIONAREProduzione:
(Nessun nome di colonna) (nessun nome di colonna)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:
SELEZIONAREProduzione:
Ord_date Deli_datetime del_daysConclusione
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.