>Ho una tabella con un campo valorizzato da un fogli excel.Il
>campo dovrebbe essere una data sul db invece è un varchar. In
>questo campo arrivano delle stringhe in questo modo "dic 23 2008
>1:12PM" oppure "12/12/2009 16.59.35" il mio probelma è che quando
>vado a fare un operazione di convert in date su questo campo(che
>è varchar) se la stringa passata è in questo modo - 12/12/2009
>16.59.35 non c'è nessun problema mentre se il valore è dic 23
>2008 1:12PM mi da un errore di conversione. E' giusto perche
>invece di passare dec 23 2008 ... gli viene passato dic 23 2008
>.... quindi in italiano come faccio a fargli eseguire la conversione
>in data????
Ciao Maurizio,
Come hai giustamente scritto "dic" è l'abbreviazione di dicembre nella nostra lingua, quindi devi istruire SQL Server a "comprendere" l'Italiano
Come? Hai due possibilità:
1) Associare l'italiano come lingua di default alla login che utilizzi per autenticarti all'istanza;
2) Forzare la lingua italiana in ogni sessione.
Dalle prove che hai fatto mi sembra di capire che con molta probabilità la lingua di default associata alla tua login non è l'italiano (probabilmente è l'inglese) quindi se non vuoi modificare questa impostazione puoi ricorrere alla seconda opzione:
SET LANGUAGE italiano;
SELECT CAST('dic 23 2008 1:12PM' AS datetime) AS Conversione;
/* Output:
Conversione
-----------------------
2008-12-23 13:12:00.000
(1 row(s) affected)
*/
>Grazie
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org