Perche' devi usare il formato data americano: mese giorno anno.
La "magia" di cui parli e' meglio definibile come "eccesso di zelo" che,
come sai, non e' una virtu'.
--
Ciao :-)
Maurizio
--------
?SPQR(C)
X
--------
CiaoX
Ivan
>-----Messaggio originale---
>> Perche' devi usare il formato data americano: mese
>giorno anno.
>
>Il problema non si risolve:
>io voglio salvare 02 agosto 2000
>se scrivo 02/08/2000 (formato ita) immette 08/02/2000
>se scrivo 08/02/2000 (formato eng) immette 02/08/2000
>
>
>
>.
>
Se scrivi... dove? Con Access ti devi porre anche questo problema.
Esattamente dove la scrivi questa stringa?
Ricordati anche che, per tagliare la testa al toro e non avere piu' mal
di testa (almeno il toro), puoi sempre passare la data in formato YYYYMMDD.
Dovremmo farlo presente a Microsoft...
>Lo risolto inserendo tutte le date in formato americano e
>non in italiano.
>Se noti nell'sempio riportato sotto inverte il mese e
>l'anno Xche lui le vede come date amricane.
>La cosa che di solito manda in confusione è la data in
>formato italiano con più di 12 giorni es 24/03/2002 che il
>sistema inserisce ma la riconosce come italiana e la
>inserisce giusta...ma poi alle date 02/08/02 (ita) le
>inverte applicando la regola americana.
Ok. ma quello che mi lascia perplesso e':
come faccio a fargli capire che gli passo una data in
formato americano e non la deve convertire?
Ho scoperto cmq che dipende dalle impostazioni
internazionali del pannello di controllo
ho settato le impost. Inglese(Stati Uniti)
il problema e' inverso ma in sostanza non cambia
L'unica e' salvarlo come stringa, ma in qs caso il formato
deve essere aaaa/mm/gg, per poi fare i relativi calcoli
Ciao
-ago
Ho una istruzione sql INSERT da ASP/ADO
> Ricordati anche che, per tagliare la testa al toro e
non avere piu' mal
>di testa (almeno il toro), puoi sempre passare la data in
formato YYYYMMDD.
Non ci avevo pensato a passare questo formato come data
(pensavo a passargli la stringa, come ho risposto a Ivan)
Grazie!
-ago
Niente da fare...
Adesso l'INSERT funziona bene, ma il SELECT no.
il 02/08/2000 :
- in Access me lo visualizza 02/08/2000,
- nella pagina ASP (rs.Fields.Item("data_inizio").Value)
lo visualizza 02/08/2000
- nel SELECT ... WHERE data_inizio = #02/08/2000# non lo
trova
- nel SELECT ... WHERE data_inizio = #08/02/2000# lo trova
-ago/mistero
ciaoX
p.s: In visualizzazione poi dovrai riconvertire le date.
>-----Messaggio originale---
>.
>
Scusa sai, ma "esattamente" vuol dire qualcosa di piu'. ;-)
In realta' esattamente vuol dire _molto_ di piu', il SO e
le impostazioni internazionali, la versione di Access, di
ADO, di ASP, di SQL... dovrei fare un megapost
Cmq adesso funziona tutto, ho usato il formato aaaa/mm/gg
per il db e il formato italiano per la visualizzazione...
Grazie del tuo aiuto!
ciao
-ago
Il formato aaaa/mm/gg e' migliore, nn c'e' davvero
pericolo (spero, almeno) che converta in modo strano la
data...
>p.s: In visualizzazione poi dovrai riconvertire le date.
e va beh, un'istruzione in piu' nn cambia la vita ;-)
Grazie ancora!
ciao
-ago
Sto facendo dei test con IIS, ASP ed SQL Server.
I regional settings sono English United Kingdom (per via della data) ma con
Input Locale US (per via della tastiera)
La cosa che mi sconvolge e' che da ASP (update) sono costretto a mettere la
data in mm/dd/yyyy, ma leggendo (select) mi ritorna in dd/mm/yyyy.
Inoltre, con l'Enterprise Manager se in tabella scrivo la data 20/10/2002 e'
ok, se invece scrivo 10/20/2002 si accorge dell'errore e me la corregge in
20/10/2002 !!!!!!!!!
Secondo me e' scandaloso che non si possa obbligare SQL server a forzare
l'accettazione in uno ed un solo formato dipendente magari dai settaggi del
client.
Sarebbe scandaloso si... Ma per fortuna il comando ce l'hai.
SET DATEFORMAT formato
in cui puoi indicare, dal lato client, in quale formato saranno inviate al
server le date.
Se esegui le istruzioni
SET DATEFORMAT mdy
INSERT MyTable VALUES('01/10/2002')
Inserirai nella tabella la data 10 gennaio mentre con
SET DATEFORMAT dmy
INSERT MyTable VALUES('01/10/2002')
la data inserita sarà quella del 1 ottobre.
Ciao
Luca Bianchi