Problema di inserimento date in SQL Server

martedì 02 agosto 2016 - 15.32

bluland Profilo | Guru

Ho appena installato una nuova versione di SQL server 2012, ho riscontrato il seguente problema

INSERT INTO [dbo].[Table_1]
([a])
VALUES
('2016-08-21 00:00:00.000' )

mi da il seguente errore:
La conversione di un tipo di dati varchar in datetime ha generato un valore non compreso nell'intervallo dei valori consentiti

se invece inserisco

INSERT INTO [dbo].[Table_1]
([a])
VALUES
('2016-21-08 00:00:00.000' )
GO


Io vorrei inserire le date e leggerle nel formato Anno Mese Giorno perche non mi permette di farlo cosa devo settare?

Suggerimenti?
--------------------
Vincenzo PESANTE
Software Engineer

ratum99 Profilo | Junior Member

>Ho appena installato una nuova versione di SQL server 2012, ho
>riscontrato il seguente problema
>
>INSERT INTO [dbo].[Table_1]
> ([a])
> VALUES
> ('2016-08-21 00:00:00.000' )
>
>mi da il seguente errore:
>La conversione di un tipo di dati varchar in datetime ha generato
>un valore non compreso nell'intervallo dei valori consentiti
>
>se invece inserisco
>
> INSERT INTO [dbo].[Table_1]
> ([a])
> VALUES
> ('2016-21-08 00:00:00.000' )
>GO
>
>
>Io vorrei inserire le date e leggerle nel formato Anno Mese Giorno
>perche non mi permette di farlo cosa devo settare?
>
>Suggerimenti?
>--------------------
>Vincenzo PESANTE
>Software Engineer

Ciao,

ho riscontrato anche io dei cambiamenti nell'interpretazione delle date.. cmq il problema è che la data '2016-08-21 00:00:00.000' non la prende perche si aspetta il seguente formato AAAA-GG-MM stile americano.

Prova ad inserirla nel formato YYYYMMDD che è lo standard ISO.

Potrebbe anche dipendere dalle regole di confronto che utilizza il DB che stai utilizzando. io uso "Latin1_General_CI_AS".
L'utente che utilizzi per connetterti al DB è lingua italian?

Per il formato della lettura è sempre un casino... è meglio che ti affidi al linguaggio che utilizzi


-RA-
"Programmare? non è così difficile"

bluland Profilo | Guru

In questo formato mi funziona
INSERT INTO [dbo].[Table_1]
([a])
VALUES
('20160821 00:00:00.000' )

ma purtoppo mi serve che sia inserito anche nel formato


INSERT INTO [dbo].[Table_1]
([a])
VALUES
('2016-08-21 00:00:00.000' )

perche su questo di DB sono lanciati script generati da un altro db le collection sono uguali sql_latin1_general_cp1_ci_as la differenza è uno ha un SO italiano ed uno Inglese, vorrei cmq far si che si possano inserire date nel secondo modo, perche ho anche problemi sulle ricerche in questo modo.
--------------------
Vincenzo PESANTE
Software Engineer

ratum99 Profilo | Junior Member

Prova:
per connetterti ai DB utilizza un utente di SQL non di windows e metti questi utenti in italian come default.
dovrebbe funzionare

-RA-
"Programmare? non è così difficile"

bluland Profilo | Guru

Ok ora funziona ho impostato anche qui l'utente in inglese e tutto sembra funzionare, ma a questo punto potrei farlo anche con l'utente di windows auth?
--------------------
Vincenzo PESANTE
Software Engineer

ratum99 Profilo | Junior Member

Ottimo !

si però non ho mai provato.

Dovresti fare utenti di windows specifici e dare il default di lingua impostazioni internazionali, quella che hai deciso di utilizzare.

-RA-
"Programmare? non è così difficile"
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5