La Funzione DATE_FORMAT()

Gli argomenti di questa pagina

  • Definizione e sintassi delle funzioni DATE_FORMAT()
  • Elenco degli argomenti da usare con la funzione DATE_FORMAT()
  • Formattazione date ed ore con la funzione DATE_FORMAT()
  • Esempio per vedere i giorni trascorsi dall'inizio dell'anno.

Definizione e sintassi delle funzioni DATE_FORMAT()

Parlando di date ed ore parliamo subito su come visualizzare le date nel formato a noi più idoneo usando la funzione MYSQL DATE_FORMAT().

La funzione DATE_FORMAT() è usata per mostrare una data e ora in formati diversi.
La sintassi è semplice

DATE_FORMAT(date,formato)

Elenco degli argomenti da usare con la funzione DATE_FORMAT()

I tipi di formato da dare a questa funzione sono elencati qui di seguito. Questa funzione Formatta il valore data in base alla stringa di formato che usa i seguenti caratteri. E' necessario porre il carattere "%" prima dei caratteri di formato.

Specificatore Descrizione
%a Nome abbreviato del giorno della settimana ( dom . Sat )
%b Nome abbreviato del mese ( gennaio dicembre )
%c Mese , numerico ( 0 .. 12 )
%D Giorno del mese con suffisso inglese ( 0 , 1 , 2, 3 , ... )
%d Giorno del mese , numerico ( 00 .. 31 )
%e Giorno del mese , numerico ( 0 .. 31 )
%f Microsecondi ( 000000 .. 999999 )
%H Ora ( 00 .. 23 )
%h Ora ( 01 .. 12)
%I Ora ( 01 .. 12)
%i Minuti , numerico ( 00 .. 59 )
%j Giorno dell'anno ( 001 .. 366 )
%k Ora ( 0 .. 23 )
%l Ora ( 1 .. 12 )
%M Nome del mese ( January. . Dicembre)
%m Mese , numerico ( 00 .. 12)
%p AM o PM
%r Orario, 12 ore ( hh : mm : ss seguito da AM o PM )
%S Secondi ( 00 .. 59 )
%s Secondi ( 00 .. 59 )
%T Orario, 24 ore ( hh : mm : ss )
%U Settimana ( 00 .. 53 ), dove Domenica è il primo giorno della settimana
%u Settimana ( 00 .. 53 ), dove Lunedi è il primo giorno della settimana
%V Settimana ( 01 .. 53 ), dove Domenica è il primo giorno della settimana usato con %X
%v Settimana ( 01 .. 53 ), dove Lunedi è il primo giorno della settimana utilizzato con %x
%W Nome del giorno della settimana ( Sunday. . Sabato )
%w Giorno della settimana ( 0 = Domenica .. 6 = Sabato )
%X Anno per la settimana in cui Domenica è il primo giorno della settimana , numerico , quattro cifre , che viene utilizzato con% V
%x Anno per la settimana , dove Lunedi è il primo giorno della settimana , numerico , quattro cifre , che viene utilizzato con% v
%Y Anno , numerici, quattro cifre
%y Anno , numerico ( due cifre )

Usando questi specificatori di formato è possibile ottenere varie informazioni sulla data che si staleggento

Formattazione date ed ore con la funzione DATE_FORMAT()

In questo primo esempio la data, visibile in modo originale nella terza colonna, viene formattata nel formato gg-mm-aaaa, come mostrato nella quarta colonna.

Oltre agli altri dati. estrarre dalla tabella la data formattata

esempio 1
1
2
3
4
5
6
<?php
$Query 
"SELECT cognome, nome, data_nascita, 
DATE_FORMAT( data_nascita, '%d-%m-%Y' ) AS nato
FROM sql_rubrica 
"
;
?>
101 record trovati
15 record visualizzati
cognome nome data_nascita nato
Migliavacca Luigi 2004-01-22 22-01-2004
Rizzi Carlo 2007-11-22 22-11-2007
Liberali Franca 2004-02-20 20-02-2004
Di Maggio Mario 2009-05-21 21-05-2009
Scicchitano Andrea 1997-01-12 12-01-1997
Edelvisi Maurizio 1987-07-02 02-07-1987
Gerardini Silvano 2009-08-12 12-08-2009
Pasotti Alessio 1987-11-14 14-11-1987
Calvi Giovanni 1987-07-26 26-07-1987
Poggi Giuseppe 1987-01-25 25-01-1987
Curti Oreste 1988-06-26 26-06-1988
Borsotti Mirella 1987-07-19 19-07-1987
Franchinotti Anna 2009-05-10 10-05-2009
Pischedda Giovanni 1999-08-08 08-08-1999
Maini Marilena 2002-03-20 20-03-2002
... ... ... ...

In questo secondo esempio la formattazione viene eseguita du data-orario completi. Nella prima colonna viene mostrata la data MYSQL senza alcuna formattazione. Nella seconda e terza colonna viene usata la funzione DATE_FORMAT().

esempio 2
1
2
3
4
5
6
7
<?php
$Query 
"SELECT nome, data_start, 
DATE_FORMAT( data_start, '%d-%m-%Y %h:%i' ) AS entrato, 
DATE_FORMAT( data_end, '%d-%m-%Y %h:%i' ) AS uscito
FROM sql_ore_lavorative
"
;
?>
8 record trovati
8 record visualizzati
nome data_start entrato uscito
Migliavacca Luigi 2011-09-08 10:00:00 08-09-2011 10:00 08-09-2011 03:00
Rizzi Carlo 2011-09-08 08:00:00 08-09-2011 08:00 08-09-2011 02:00
Liberali Franca 2011-09-07 22:40:00 07-09-2011 10:40 08-09-2011 08:00
Di Maggio Mario 2011-09-08 13:59:00 08-09-2011 01:59 08-09-2011 10:30
Scicchitano Andrea 2013-10-13 07:05:00 13-10-2013 07:05 13-10-2013 02:15
Edelvisi Maurizio 2013-10-13 13:58:00 13-10-2013 01:58 13-10-2013 09:05
Gerardini Silvano 2013-10-13 20:58:00 13-10-2013 08:58 14-10-2013 07:05
Pasotti Alessio 2013-10-14 06:43:00 14-10-2013 06:43 14-10-2013 02:11

In questo esempio modifico la formattazione classica visualizzando il mese ed indicando il giorno della settimana.

Indicare il nome del mese ed il giorno della settimana

esempio 3
1
2
3
4
5
6
7
<?php
$Query 
"SELECT nome, 
DATE_FORMAT( data_start, '%d-%b-%Y %a' ) AS entrato, 
DATE_FORMAT( data_end, '%d-%b-%Y %a' ) AS uscito
FROM sql_ore_lavorative
"
;
?>
8 record trovati
8 record visualizzati
nome entrato uscito
Migliavacca Luigi 08-Sep-2011 Thu 08-Sep-2011 Thu
Rizzi Carlo 08-Sep-2011 Thu 08-Sep-2011 Thu
Liberali Franca 07-Sep-2011 Wed 08-Sep-2011 Thu
Di Maggio Mario 08-Sep-2011 Thu 08-Sep-2011 Thu
Scicchitano Andrea 13-Oct-2013 Sun 13-Oct-2013 Sun
Edelvisi Maurizio 13-Oct-2013 Sun 13-Oct-2013 Sun
Gerardini Silvano 13-Oct-2013 Sun 14-Oct-2013 Mon
Pasotti Alessio 14-Oct-2013 Mon 14-Oct-2013 Mon

Esempio per vedere i giorni trascorsi dall'inizio dell'anno.

Nel primo esempio lo faccio sulla data odierna usando la funzione NOW(), senza leggere la tabella del DB.
Nel secondo esempio uso le date della tabella del DB.

Giorni trascorsi dallinizio dell'anno per la data odierna e per le date prelevate dal DB

esempio 4
1
2
3
4
<?php
$Query 
"SELECT DATE_FORMAT(NOW(),'%j') AS GiorniTrascorsi
"
;
?>
esempio 4 a
1
2
3
4
5
6
<?php
$Query 
"SELECT cognome, nome, data_nascita, 
DATE_FORMAT( data_nascita, '%j' ) AS giorni
FROM sql_rubrica 
"
;
?>
1 record trovati
1 record visualizzati
GiorniTrascorsi
149
101 record trovati
15 record visualizzati
cognome nome data_nascita giorni
Migliavacca Luigi 2004-01-22 022
Rizzi Carlo 2007-11-22 326
Liberali Franca 2004-02-20 051
Di Maggio Mario 2009-05-21 141
Scicchitano Andrea 1997-01-12 012
Edelvisi Maurizio 1987-07-02 183
Gerardini Silvano 2009-08-12 224
Pasotti Alessio 1987-11-14 318
Calvi Giovanni 1987-07-26 207
Poggi Giuseppe 1987-01-25 025
Curti Oreste 1988-06-26 178
Borsotti Mirella 1987-07-19 200
Franchinotti Anna 2009-05-10 130
Pischedda Giovanni 1999-08-08 220
Maini Marilena 2002-03-20 079
... ... ... ...

 

 



settore tecnico il sito di lorettabweb il Forum di sostegno
il forum il forum il forum