salve,
moto5alex ha scritto:
Ciao a tutti
sto cercando di salvare la data e l'ora in DB SQL server 2000, il problema e che non riesco a convertire il dato che avrebbe questa forma gg/mm/aaaa hh.mm.ss per poi salvarlo nel DB, infatti visualizzo questo errore
Tipo di errore:
Microsoft OLE DB Provider for SQL Server (0x80040E07)
La conversione del tipo di dati da char a datetime ha generato un valore di tipo datetime non compreso nell'intervallo di valori validi.
come faccio a convertire il dato in datetime x salvarlo nel DB ????
GRAZIE MILLE A TUTTI.
ti consiglio di leggere l'articolo dell'MVP SQL Server Lorenzo Benaglia, liberamente consultabile presso http://www.dotnethell.it/tips/SQLServerDates.aspx , che riporta informazioni preziose circa l'utilizzo delle date...
come ben sai la "formattazione" delle stesse dipende dal contesto linguistico della login corrente e/o dalle impostazioni correnti a livello di SET DATEFORMAT...
puoi benissimo valutare il risultato del sequente script
-- SET LANGUAGE 'italiano'
-- SET LANGUAGE 'english'
SET DATEFORMAT ymd
DECLARE @dt datetime, @v varchar(19)
SET @v = '2005-11-14 18:05:01'
SELECT @dt = @v
SELECT @dt AS [impostazione ISO]
SELECT @dt = NULL
SET @v = '14/11/2005 18:05:01'
SELECT @dt = @v
SELECT @dt AS [Localizzata]
SET DATEFORMAT dmy
SELECT @dt = NULL
SET @v = '14/11/2005 18:05:01'
SELECT @dt = @v
SELECT @dt AS [Localizzata]
le mie login hanno solitamente l'impostazione inglese, quindi l'iniziale SET DATEFORMAT ymd non e' importante, ma comunque devi valutare correttamente il contesto di esecuzione..
per non sbagliare mai e non dover dipendere dalle impostazioni locali della login, utilizza sempre il formato ISO
saluti