Discussione:
Date in mySql
(troppo vecchio per rispondere)
Paolo
2006-08-31 10:03:45 UTC
Permalink
Salve, volevo sapere come si cambia il formato della data in MySql. Se uso
il tipo variabile DATE mi memorizza la data in aaaa-mm-gg io vorrei invece
gg-mm-aaaa. Conviene fare tale conversione in mySql o direttamente nel
codice PHP?
Grazie

Paolo
[CapoBecchino]
2006-08-31 10:08:27 UTC
Permalink
Post by Paolo
Salve, volevo sapere come si cambia il formato della data in MySql. Se uso
il tipo variabile DATE mi memorizza la data in aaaa-mm-gg io vorrei invece
gg-mm-aaaa. Conviene fare tale conversione in mySql o direttamente nel
codice PHP?
Grazie
ti conviene farti una tua funzione direttamente in php ;)
Post by Paolo
Paolo
--
SEZIONE DIVERTIMENTO & AFFINI: "Qual è il poliziotto più sfortunato?
Quello che muore al posto di blocco. E quello più fortunato? Blocco!"

[CapoBecchino] - hotmail/msn: capobecchino [@] hotmail [.] com
raenkrus
2006-08-31 10:09:05 UTC
Permalink
Post by Paolo
Salve, volevo sapere come si cambia il formato della data in MySql. Se uso
il tipo variabile DATE mi memorizza la data in aaaa-mm-gg io vorrei invece
gg-mm-aaaa. Conviene fare tale conversione in mySql o direttamente nel
codice PHP?
Grazie
Paolo
Conviene fare la conversione da PHP, nel db lascia il formato standard.

raenkrus
Francesco F
2006-08-31 10:48:44 UTC
Permalink
Post by raenkrus
Conviene fare la conversione da PHP, nel db lascia il formato standard.
Secondo me conviene utilizzare l'apposita funzione di mysql, in fase di
query:

DATE_FORMAT(date,format)
Formats the date value according to the format string.
The following specifiers may be used in the format string. The ‘%’
character is required before format specifier characters.

Francesco F
Paolo
2006-09-01 10:33:44 UTC
Permalink
Potresti spiegarmi meglio come applicare questa funzione in una pagina PHP?
Quando devo fare tale query? Dopo mi cambia per sempre il formato della
data? Grazie ancora
Francesco F
2006-09-01 11:13:51 UTC
Permalink
Post by Paolo
Potresti spiegarmi meglio come applicare questa funzione in una pagina PHP?
Quando devo fare tale query? Dopo mi cambia per sempre il formato della
data? Grazie ancora
Nel database il formato della data resta e deve restare yyyy-mm-dd,
quindi se fai una select field_data from table, ti visualizzerà sempre e
comunque 2005-09-23

Se vuoi la data formattata hai due possibilita:

1)
$s = "select field_data from table";
$r = mysql_query($s);
echo mysql_result($s,0,'field_data');
che ti visualizza: 2005-06-23
per portarla in formato IT potesti fare via PHP un explode e
concatenazione oppure 3 substr
$a = explode ("-", mysql_result($s,0,'field_data'));
printf("%02d-%02d-%04d", $a[2], $a[1], $a[0]);

2)
$s = "select DATE_FORMAT(field_data, '%d-%m-%Y') as ITdata from table";
$r = mysql_query($s);
echo mysql_result($s,0,'ITdata');
che ti visualizza: 23-06-2005

Francesco
Negus
2006-09-09 07:57:37 UTC
Permalink
Post by Paolo
Salve, volevo sapere come si cambia il formato della data in MySql. Se uso
il tipo variabile DATE mi memorizza la data in aaaa-mm-gg io vorrei invece
gg-mm-aaaa. Conviene fare tale conversione in mySql o direttamente nel
codice PHP?
Tramite PHP ovviamente, perchè il formato del mysql è uno standard.

In PHP basta fare:

echo date('d-m-Y',strtotime($rs['data_in_formato_standard']));

Ciao,
Fabrizio
Francesco F
2006-09-09 09:22:55 UTC
Permalink
Post by Negus
Tramite PHP ovviamente, perchè il formato del mysql è uno standard.
Beh, °ovviamente° mi pare proprio la risposta sbagliata!
Si può fare via database, allora perchè scomodare il php?

Francesco
Negus
2006-09-09 13:51:54 UTC
Permalink
Post by Francesco F
Post by Negus
Tramite PHP ovviamente, perchè il formato del mysql è uno standard.
Beh, °ovviamente° mi pare proprio la risposta sbagliata!
Si può fare via database, allora perchè scomodare il php?
Francesco
Semplicemente perchè evito, per quanto possibile, tutto quello che è
database-dipendente (in questo caso sql-dipendente).

Se un giorno usassi un altro db, probabilmente dovrei mettere mano a
tutte le stringhe sql simili a quella.
Francesco F
2006-09-09 17:58:31 UTC
Permalink
Post by Negus
Semplicemente perchè evito, per quanto possibile, tutto quello che è
database-dipendente (in questo caso sql-dipendente).
Se un giorno usassi un altro db, probabilmente dovrei mettere mano a
tutte le stringhe sql simili a quella.
Per questo hanno inventato le classi per l'astrazione del db :-)
Senza contare che scrivere codice sql (semplice) non ti garantisce la
compatibilità tra altri db (e si torna al discorso dell'astrazione)

Francesco
Negus
2006-09-10 09:45:58 UTC
Permalink
Post by Francesco F
Post by Negus
Se un giorno usassi un altro db, probabilmente dovrei mettere mano a
tutte le stringhe sql simili a quella.
Per questo hanno inventato le classi per l'astrazione del db :-)
Quindi a livello di codice, cioè in PHP. -)
Post by Francesco F
Senza contare che scrivere codice sql (semplice) non ti garantisce la
compatibilità tra altri db (e si torna al discorso dell'astrazione)
Sicuro. Però se lo scrivo il più aderente possibile allo standard,
probabilmente riuscirò a garantire la compatibilità.

Ciao,
Fabrizio
Francesco F
2006-09-11 06:08:53 UTC
Permalink
Post by Negus
Quindi a livello di codice, cioè in PHP. -)
Se il dmbs non prevede tale funzione, altrimenti usa la funzione nativa

Poi, il tutto si risolve con un certo stile di programmazione e, in
merito a tale osservazione, ho dato la mia opinione.
Il database non può essere considerato solo un "contenitore" di dati ma
bisogna (ripeto, mia opinione) andare oltre. Se ha delle funzioni che
rendono la vita più semplice e il codice più pulito, perche' non
utilizzarlo?
Io preferisco un sql concat(cognome, ' ', nome) as txt_nominativo
rispetto a un php $row['cognome'] . " " . $row['nome']
Post by Negus
Sicuro. Però se lo scrivo il più aderente possibile allo standard,
probabilmente riuscirò a garantire la compatibilità.
Se prevedi di cambiare db, usa l'astrazione

Francesco

Continua a leggere su narkive:
Loading...