21 messaggi dal 13 ottobre 2005
Ciao a tutti,
devo inserire una variabile cosi strutturara '19/10/2006 10.20.00' in
un campo smalldatetime; la query che eseguo è la seguente:

INSERT INTO HA_TRANSIT2
(TRANSIT_DATE)
VALUES ('19/1/2006 10.33.50')

P.S.: se la inserisco senza l'orario funziona, ma devo necessariamente inserirla con l'orario

mi da sempre il seguente errore:
"La conversione del tipo di dati da char a smalldatetime ha generato un valore smalldatetime non compreso nell'intervallo di valori validi".

Ho provato con la funzione cdate, ma non ho risolto niente.

Come posso fare??????
Aiuto

Grazie
1.976 messaggi dal 27 luglio 2005
Contributi
salve,
shirox81 ha scritto:
Ciao a tutti,
devo inserire una variabile cosi strutturara '19/10/2006 10.20.00' in
un campo smalldatetime; la query che eseguo è la seguente:

INSERT INTO HA_TRANSIT2
(TRANSIT_DATE)
VALUES ('19/1/2006 10.33.50')

P.S.: se la inserisco senza l'orario funziona, ma devo necessariamente inserirla con l'orario

mi da sempre il seguente errore:
"La conversione del tipo di dati da char a smalldatetime ha generato un valore smalldatetime non compreso nell'intervallo di valori validi".

Ho provato con la funzione cdate, ma non ho risolto niente.

Come posso fare??????
Aiuto

Grazie



e' "completamente" sbagliato il formato della data nella sua rappresentazione..
per quanto riguarda il tempo, il separatore e' il ":" e non ".", mentre la data andrebbe sempre indicata nel formato ISO (YYYYMMDD o YYYY-MM-DD) al fine di evitare problemi di converesione legati alle impostazioni locali della login utilizzata..
personalmente la mia login corrente ha come lingua impostata "us_english", ed una data passata come '19/10/2006' non verrebbe mai accettata..

SET NOCOUNT ON;
DECLARE @sdt smalldatetime;
DECLARE @p varchar(19);
PRINT 'Errato'
SET @p = '19/10/2006 10.20.00'
SET @sdt = @p;
PRINT '--'
PRINT ''

PRINT 'Errato, ma potrebbe funzionare se il formato data'
PRINT 'della Win Locale corrisponde al formato passato (dmy)'
SET @p = '19/10/2006 10:20:00'
SET @sdt = @p;
PRINT '--'
PRINT ''

PRINT 'cambio del formato delle date forzandolo a dmy'
SET DATEFORMAT dmy
PRINT 'infatti cosi'' funziona, ma non e'' comunque corretto'
SET @p = '19/10/2006 10:20:00'
SET @sdt = @p;
PRINT '--'
PRINT ''

PRINT 'formato sempre corretto, anche default di rappresentazione ISO'
SET @p = '20061019 10:20:00'
SET @sdt = @p;

saluti

Andrea Montanari
http://www.hotelsole.com - http://www.hotelsole.com/asql/index.php
21 messaggi dal 13 ottobre 2005
Ho provato facendo la replace del punto con i due punti nei campi dell'orario e funziona l'inserimento.

Grazie tanto

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.