Operazioni con le date

SQL Server intermedio

Ginger Grant

Instructor

DATEPART

DATEPART serve a indicare quale parte della data vuoi calcolare. Abbreviazioni comuni:

  • DD per giorno
  • MM per mese
  • YY per anno
  • HH per ora
SQL Server intermedio

Funzioni data comuni in T-SQL

  • DATEADD(): somma o sottrae valori datetime
    • Restituisce sempre una data
  • DATEDIFF(): ottiene la differenza tra due valori datetime
    • Restituisce sempre un numero
SQL Server intermedio

DATEADD

Per sommare o sottrarre un valore e ottenere una nuova data usa DATEADD()

DATEADD (DATEPART, number, date) 
  • DATEPART: unità di misura (DD, MM, ecc.)
  • number: un intero da aggiungere
  • date: un valore datetime
SQL Server intermedio

Calcoli con DATEADD (I)

Qual è la data 30 giorni dopo il 21 giugno 2020?

SELECT DATEADD(DD, 30, '2020-06-21')
+-----------------------------+ 
|(No Column Name)             | 
|-----------------------------+ 
|2020-07-21 00:00             | 
+-----------------------------+
SQL Server intermedio

Calcoli con DATEADD (II)

Qual è la data 30 giorni prima del 21 giugno 2020?

SELECT DATEADD(DD, -30, '2020-06-21')
+-----------------------------+ 
|(No Column Name)             | 
|-----------------------------+ 
|2020-05-22 00:00             | 
+-----------------------------+
SQL Server intermedio

DATEDIFF

Restituisce una data dopo aver aggiunto o sottratto un numero a una data

DATEDIFF (datepart, startdate, enddate) 
  • datepart: unità di misura (DD, MM, ecc.)
  • startdate: data di inizio
  • enddate: data di fine
SQL Server intermedio

Calcoli con DATEDIFF

SELECT DATEDIFF(DD, '2020-05-22', '2020-06-21') AS Difference1,
       DATEDIFF(DD, '2020-07-21', '2020-06-21') AS Difference2
+--------------------+--------------------+ 
|Difference1         |Difference2         |
+--------------------+--------------------+
|30                  |-30                 |
+--------------------+--------------------+
SQL Server intermedio

Esercitiamoci!

SQL Server intermedio

Preparing Video For Download...