Luca
2004-01-05 12:20:34 UTC
Ciao a tutti,
Sto effettuando il porting di un applicativo .asp con db Access ad un db
SQL. Ho un problema con la funzione CDbl.
Ho un campo che contiene un valore double rappresentante una data. Ho
inserito questo valore tramite l'istruzione asp:
MyRs("LoginDate") = CDbl(Now)
Quando faccio le successive select, tutto funziona bene, ad esempio:
SELECT * From Users WHERE CDbl(Now) - LoginDate > 1
(questa select serve per estrarre tutti gli utenti che si sono collegati da
più di un giorno). Tutto funziona bene con Access.
Con SQL Server 2000, invece, se faccio:
SELECT * From Users WHERE Convert(float,GetDate) - LoginDate > 1
non mi ritorna nulla! Lavorandovi un po', ho scoperto che questo accade
perché le istruzioni:
CDbl(Now) --> Access
Convert(float,GetDate) --> SQL
*non* restituiscono lo stesso valore double, ma il valore SQL è
esattamente -2 del valore Access. Quindi sembra che SQL tolga sempre 2
giorni. Invece dovrebbero restituire lo stesso valore, vero? In fondo io gli
sto chiedendo di trasformarmi in double la data/ora corrente, e il risultato
dovrebbe essere sempre uguale!
Come mai? Qualcuno mi può spiegare?
Grazie!
Luca
Sto effettuando il porting di un applicativo .asp con db Access ad un db
SQL. Ho un problema con la funzione CDbl.
Ho un campo che contiene un valore double rappresentante una data. Ho
inserito questo valore tramite l'istruzione asp:
MyRs("LoginDate") = CDbl(Now)
Quando faccio le successive select, tutto funziona bene, ad esempio:
SELECT * From Users WHERE CDbl(Now) - LoginDate > 1
(questa select serve per estrarre tutti gli utenti che si sono collegati da
più di un giorno). Tutto funziona bene con Access.
Con SQL Server 2000, invece, se faccio:
SELECT * From Users WHERE Convert(float,GetDate) - LoginDate > 1
non mi ritorna nulla! Lavorandovi un po', ho scoperto che questo accade
perché le istruzioni:
CDbl(Now) --> Access
Convert(float,GetDate) --> SQL
*non* restituiscono lo stesso valore double, ma il valore SQL è
esattamente -2 del valore Access. Quindi sembra che SQL tolga sempre 2
giorni. Invece dovrebbero restituire lo stesso valore, vero? In fondo io gli
sto chiedendo di trasformarmi in double la data/ora corrente, e il risultato
dovrebbe essere sempre uguale!
Come mai? Qualcuno mi può spiegare?
Grazie!
Luca