Date: formattazione e inserimento in database
Data di pubblicazione: 05/09/2002
Voto della community: 4,39
(Votanti: 30)
Durante la realizzazione di applicazioni ASP, quando trattavo dati di tipo data (passatemi il gioco di parole),
mi sono spesso "scontrato" con problemi di formattazione delle date stesse, sia a livello di visualizzazione
nel browser che, soprattutto, a livello di inserimento corretto all'interno di un database. In questo articolo
vedremo come "scavalcare" queste problematiche.
Visualizzazione data
Nel primo caso, il problema, è spesso dovuto al fatto che il server su cui risiede il nostro sito, ha impostazioni
americane, per cui le date, se prelevate dal database e inviate al browser, vengono visualizzate nel formato
americano mm/gg/aaaa.
In questa situazione, se si desidera invece una formattazione "italiana", basta aggiungere all'inizio di ogni pagina ASP, la seguente riga di codice:
<%
o, ancora meglio, inserire tale riga nella Sub Session_OnStart del global.asa.
Per esperienza, però, ho riscontrato che alcuni server non permettono di definire la proprietà LCID dell'oggetto Session, per cui, in questo caso, è necessario realizzare una funzione di formattazione ad hod. Vediamola:
<%
Questa funzione accetta come paramentro una data in qualsiasi formato, e restituisce la stessa data in formato
italiano standard.
Ed ecco un esempio del suo utilizzo:
<% Inserimento data in un database
Veniamo ora al problema dell'inserimento date all'interno di un database che, a quanto sembra dai numerosi
post sul forum, sembra tediare un gran numero di programmatori, me compreso. ;-)
Come database di riferimento, consideriamo MS Access. Supponiamo di avere una sql del tipo:
<%
In questo frammento di codice, inseriamo la data odierna nel campo ISCRIZIONE della tabella "iscrizioni".
Dopo l'inserimento, se andiamo a controllare cosa effettivamente contiene il database, con molta probabilità, vedremo una data in cui il giorno è stato invertito con il mese (se il giorno è maggiore di 12 la data potrebbe invece essere inserita correttamente). Per ovviare a questo problema, ed essere sicuri che la data venga sempre inserita nel database nel formato definito durante la creazione del campo della tabella, è sufficiente effettuare gli inserimenti dopo aver convertito la data nel formato aaaa/mm/gg o aaaa-mm-gg. Ecco la "funzioncina" di conversione, e un suo possibile utilizzo, considerando l'esempio appena visto:
<%
<%
Dato che gli inserimenti di date in database, spesso coinvolgono la data relativa al momento stesso dell'inserimento, potrebbe essere comodo
generalizzare la funzione appena vista in modo tale che, se il parametro data dovesse essere vuoto,
la data restituita sia quella odierna.
Una nota merita anche l'inserimento di date nel caso si utilizzi MS SQL Server come database. Questo RDBMS accetta le date solo nei formati: aaaammgg oppure aaaa-mm-gg.
|
||||||||||||||||||||||||