Access 2003 e la memorizzazione delle date

di il
2 risposte

Access 2003 e la memorizzazione delle date

Salve a tutti,
è il mio primo post ... spero riesca ad essere chiaro.

Vado subìto al sodo.

Ho un campo Data ( formato in cifre 00/00/0000 ) che riempio e cui accedo via VB6 con query SQL.

Quando inserisco le date ( formato italiano: gg/mm/aaaa ), il database si comporta come di seguito:

*) Se la data è "ambigua" come #11/10/2003#, il Database me la memorizza come data in formato inglese ( nonostante il motore Jet sia in Italiano ) ... ed ho visto che questo è corretto secondo la guida: "se la data è inserita come literal - cioè inserita tra cancelletti - essa viene interpretata come inglese"

**) Se la data è "palesemente italiana" ad esempio #21/10/2003# essa - ovviamente - non viene invertita e viene memorizzata così come inserita.

A questo punto, fino a quando devo valutare le date con criteri di uguaglianza non ci sono problemi e localizza i record correttamente. Il problema sorge con gli operatori di diseguaglianza ( > o < ).

In particolare io ho bisogno di eseguire una query del tipo:

"SELECT * FROM [Tabella] WHERE Data > #10/11/2003#"

ma il confronto viene effettuato "all'inglese" (e quindi errato) per le date ambigue ( caso * ) mentre "all'italiana" quando esse sono del secondo caso ( ** ). Inutile dire che <b>l'elenco di date contiene date non rispondenti alla mia query</b>.

Forse per voi sarà banale, ma io non riesco a risolvere il problema .

Preciso che le impostazioni internazionali del mio sistema operativo ( Windows XP Pro ) sono impostate su Italiano (Italia).

---------------------

Scusate la prolissità, ma volevo essere il più chiaro possibile.
Grazie di tutto

Tony


...............

Tonyweb
web: http://www.cplusplus.i

2 Risposte

  • Re: Access 2003 e la memorizzazione delle date

    Le query vanno (sempre) fatte nel formato #mm/dd/yyyy#, oppure, usando CLNG(CAMPO) per evitare spiacevoli sorprese, soprattutto nell'ordinamento su macchine su cui non si conosce la configurazione internazionale, tipicamente SQL Server.

    Questo solo per i prodotti Microsoft. Gli altri hanno preveduto il problema e richiedono, ad esempio, il UNIX time stamp, che è #yyyy-mm-dd hh:mm:ss#, che è sempre così e non funziona in altre modalità.

    Giovanni
    ---
    http://www.y2ksw.com/vbulletin
  • Re: Access 2003 e la memorizzazione delle date

    Grazie mille y2ksw ( Year 2000 Software ? ).
    Ho infatti provato ad usare le date inglesi sia in inserimento sia in query ... tutto funziona.

    E' la visualizzazione di Access che mi aveva fregato ... come mostra le date non è come le memorizza ...

    Ciao


    ...............

    Tonyweb
    web: http://www.cplusplus.i
Devi accedere o registrarti per scrivere nel forum
2 risposte