SQL SERVER: Ancora a proposito delle date



Proseguo a parlare di date dopo il mio primo articolo SQLSERVER: la gestione delle date sempre su MondoInformatico.

Ancora qualche altra funzione e qualche esempio.

La funzione:

DATENAME ( datepart, date )

Ritorna una stringa che indica quella parte di data (datepart) della data passata (date).
Datepart puù assumere diversi con cui e’ possibile selezionare le informazioni desiderate sulla data.
Usando il valore WEEKDAY ci verra’ restituito il nome del giorno (in inglese!), vediamo un esempio di chiamata:

DECLARE @Natale DATETIME
SET @Natale = '2009/12/25' -- ricordatevi nel formato AAAA/MM/GG
SELECT DATENAME(WEEKDAY, @Natale) AS [Natale cade di...]

Eseguendolo nel Query Analyzer di SQLServer Management Studio ritornera’:

Natale cade di
---------------
Fryday

Possiamo anche usare i seguenti valori:

MONTH     .. in questo caso ritorna la descrizione del mese
YEAR      .. in questo caso ritorna l'anno
DAYOFYEAR .. ritorna il giorno progressivo dell'anno
WEEK      .. ritorna il numero progressivo della settimana

Passiamo ora a vedere come eseguire una conversione di una data in una stringa ottenendo un formato predefinito:

DECLARE @mydate DATETIME
SET @mydate = CONVERT(DATETIME, '01/25/2009' )
SELECT convert( char(20), @mydate, 103  ) as FormatoItaliano

Che ritorna:

FormatoItaliano
---------------
25/01/2009

Altri formati utili sono:
101  .. formato USA: MM/GG/AAAA
103  .. formato francese: GG/MM/AAAA
105  .. ritorna la data in formato italiano: GG-MM-AA
112  .. fomato ISO: AAAAMMGG

Aggiungiamo per completare questo escursus sull’argomento ‘date’ come ottenere la data UTC (Coordinated Universal Time).
UTC è il fuso orario di riferimento da cui tutti gli altri fusi orari del mondo sono calcolati, corrisponde al vecchio Tempo Medio di Greenwich (GMT):

SELECT GETUTCDATE() as 'Data UTC'

Concludiamo con un esempio di formattazione della data odierna, con aggiunta del carattere ‘0’ non significativo nei giorni e mesi (cioè ’01’ invece di ‘1’):

SET @SDATE =  RIGHT ('00' + CONVERT(varchar(2), DATEPART(day, GETDATE())), 2) + '/' + RIGHT ('00' + CONVERT(varchar(2), DATEPART(month, GETDATE())), 2) + '/' + CONVERT(varchar(4), DATEPART(year, GETDATE()))

SET @STIME =  RIGHT ('00' + CONVERT(varchar(2), DATEPART(hour, GETDATE())),2) + ':' + RIGHT ('00' + CONVERT(varchar(2), DATEPART(minute, GETDATE())),2) + ':' + RIGHT ('00' + CONVERT(varchar(2), DATEPART(second, GETDATE())), 2)

print 'Data:' + @SDATE + ' ' + @STIME

La data sarà stampata con il seguente formato:
Data:29/01/2009 17:02:58

Sul mio sito http://www.abspace.it/ComputerSpace/SQLCheatSheet.asp trovate un utile reference manual di SQL SERVER e delle sue funzionalità.

Con questo ho esaurito l’argomento data & date relativamente a SQLSERVER.
alberto bellina

Annunci sponsorizzati:
Condividi su Facebook Condividi su Twitter!
Pinterest