Esercitazione SQL

SQL HOME Introduzione SQL Sintassi SQL Seleziona SQL SQL Seleziona distinto SQL dove SQL e, o, no Ordina SQL per Inserisci SQL in Valori nulli SQL Aggiornamento SQL Elimina SQL SQL Seleziona in alto SQL Min e Max Conteggio SQL, media, somma Mi piace SQL Caratteri jolly SQL SQL In SQL tra Alias ​​SQL Join SQL Join interno SQL Join sinistro SQL SQL Right Join SQL Full Join SQL Self Join Unione SQL Raggruppamento SQL per SQL Avere SQL esiste SQL Qualsiasi, Tutti SQL Seleziona in Inserisci SQL in Seleziona Caso SQL Funzioni SQL Null Stored procedure SQL Commenti SQL Operatori SQL

Database SQL

SQL Crea DB SQL Drop DB DB di backup SQL SQL Crea tabella Tabella di rilascio SQL SQL Alter tabella Vincoli SQL SQL non nullo SQL unico Chiave primaria SQL Chiave esterna SQL Controllo SQL SQL predefinito Indice SQL Incremento automatico SQL Date SQL Viste SQL SQL Injection Hosting SQL Tipi di dati SQL

Riferimenti SQL

Parole chiave SQL Funzioni MySQL Funzioni di SQL Server Funzioni di accesso MS Riferimento rapido SQL

Esempi SQL

Esempi SQL Quiz SQL Esercizi SQL Certificato SQL

SQL che lavora con le date


Date SQL

La parte più difficile quando si lavora con le date è assicurarsi che il formato della data che si sta tentando di inserire corrisponda al formato della colonna della data nel database.

Finché i tuoi dati contengono solo la parte della data, le tue query funzioneranno come previsto. Tuttavia, se è coinvolta una parte di tempo, diventa più complicato.


Tipi di dati di data SQL

MySQL viene fornito con i seguenti tipi di dati per la memorizzazione di una data o di un valore di data/ora nel database:

  • DATE - formato AAAA-MM-GG
  • DATETIME - formato: AAAA-MM-GG HH:MI:SS
  • TIMESTAMP - formato: AAAA-MM-GG HH:MI:SS
  • YEAR - formato AAAA o AAAA

SQL Server viene fornito con i seguenti tipi di dati per l'archiviazione di una data o di un valore di data/ora nel database:

  • DATE - formato AAAA-MM-GG
  • DATETIME - formato: AAAA-MM-GG HH:MI:SS
  • SMALLDATETIME - formato: AAAA-MM-GG HH:MI:SS
  • TIMESTAMP - formato: un numero univoco

Nota: i tipi di data vengono scelti per una colonna quando crei una nuova tabella nel tuo database!


SQL che lavora con le date

Guarda la seguente tabella:

Tabella degli ordini

OrderId ProductName OrderDate
1 Geitost 2008-11-11
2 Camembert Pierrot 2008-11-09
3 Mozzarella di Giovanni 2008-11-11
4 Mascarpone Fabioli 2008-10-29

Ora vogliamo selezionare i record con un OrderDate di "2008-11-11" dalla tabella sopra.

Usiamo la seguente SELECTaffermazione:

SELECT * FROM Orders WHERE OrderDate='2008-11-11'

Il set di risultati sarà simile a questo:

OrderId ProductName OrderDate
1 Geitost 2008-11-11
3 Mozzarella di Giovanni 2008-11-11

Nota: due date possono essere facilmente confrontate se non è coinvolta alcuna componente temporale!

Ora, supponiamo che la tabella "Ordini" assomigli a questa (notare il componente temporale aggiunto nella colonna "Data ordine"):

OrderId ProductName OrderDate
1 Geitost 2008-11-11 13:23:44
2 Camembert Pierrot 2008-11-09 15:45:21
3 Mozzarella di Giovanni 2008-11-11 11:12:01
4 Mascarpone Fabioli 2008-10-29 14:56:59

Se utilizziamo la stessa SELECTaffermazione di cui sopra:

SELECT * FROM Orders WHERE OrderDate='2008-11-11'

non otterremo alcun risultato! Ciò è dovuto al fatto che la query cerca solo le date senza una porzione di tempo.

Suggerimento: per mantenere le tue query semplici e facili da gestire, non utilizzare componenti temporali nelle date, a meno che non sia necessario!