Discussione:
smalldatetime
(troppo vecchio per rispondere)
max
2007-09-23 08:13:26 UTC
Permalink
Ciao a tutti.
Ho creato una semplice SP per inserire dati in una tabella.
Uno dei campi ha dati smalldatetime e se provo ad eseguire la SP in
corrispondenza della riga di quel tipo di dato mi risponde che la sintassi
non è corretta in prossimità di '/'.
la data la inserisco così: 23/09/2007
Cos'è che non va?

Grazie in anticipo per la paziente risposta
Lorenzo Benaglia
2007-09-23 08:52:46 UTC
Permalink
Post by max
Uno dei campi ha dati smalldatetime e se provo ad eseguire la SP in
corrispondenza della riga di quel tipo di dato mi risponde che la sintassi
non è corretta in prossimità di '/'.
la data la inserisco così: 23/09/2007
Cos'è che non va?
Ciao max,

Il problema sta nel formato della data che stai utilizzando.
Il formato di data, valuta, separatore decimale e delle migliaia, ecc. è
relativo alla lingua associata alla login che stai utilizzando per accedere
all'istanza.

Nel tuo esempio hai utilizzato 'DD/MM/YYYY' che corrisponde alla lingua
British/French, quindi verrà interpretato correttamente solo se la tua login
ha come lingua di default British o French.

Volengo è possibile modificare il formato data a livello di sessione (SET
DATEFORMAT), oppure modificare la lingua a livello di sessione (SET
LANGUAGE) o a livello di login (ALTER LOGIN) ma il modo più corretto per
svincolarsi completamente dal formato data consiste nell'utilizzare il
formato ANSI SQL 'YYYYMMDD' senza alcun separatore.

In questo articolo di Tibor troverai una guida completa sul formato datetime
di SQL Server:

"The ultimate guide to the datetime datatypes"
http://www.karaszi.com/SQLServer/info_datetime.asp
Post by max
Grazie in anticipo per la paziente risposta
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo
http://italy.mvps.org
max
2007-09-23 15:04:34 UTC
Permalink
Grazie Lorenzo per la tua gentilezza e scusa se ti chiedo un altro sforzo di
pazienza ma non sono riuscito ad arrivare ad una soluzione.

La lingua predefinita per l'account che accede al database è l'italiano.
Se inserisco direttamente nella tabella una data con il formato dd/mm/yyyy
questa viene inserita senza difficoltà e così pure visualizzata.
L'errore se non ho capito male stà nell'inserimento attraverso i parametri
della SP.
Ho provato ad inserire la data così: 20070923 invece che 23/09/2007 , come
mi sembra avevi suggerito tu, ma mi segna nuovamente errore perchè il dato
lo interpreta come un integer.
Forse occorre un particolare identificatore? (in access si usa il
cancelletto).

Grazie ancora.
Lorenzo Benaglia
2007-09-23 16:04:30 UTC
Permalink
Post by max
Ho provato ad inserire la data così: 20070923 invece che 23/09/2007 , come
mi sembra avevi suggerito tu, ma mi segna nuovamente errore perchè il dato
lo interpreta come un integer.
Forse occorre un particolare identificatore? (in access si usa il
cancelletto).
Ciao max,

il valore 20070923 deve essere una stringa e quindi racchiuso tra singoli
apici: '20070923'
Post by max
Grazie ancora.
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo
http://italy.mvps.org
max
2007-09-23 20:55:53 UTC
Permalink
Funzia funzia...!

Loading...