Cambio tipo data

martedì 22 febbraio 2011 - 22.40
Tag Elenco Tags  VB.NET  |  Windows XP  |  Visual Studio 2008  |  SQL Server 2008 R2

Zagor60 Profilo | Junior Member

Salve,

oggi ho re-installato sql server 2008 R2 , ed improvisamente le date da per es. 01/01/2011 adesso sono convertire in 2011/01/01 come faccio a ritornale come prima?
Saluti

ma_di Profilo | Junior Member

>Salve,
>
>oggi ho re-installato sql server 2008 R2 , ed improvisamente
>le date da per es. 01/01/2011 adesso sono convertire in 2011/01/01
>come faccio a ritornale come prima?
>Saluti

Ciao,
sicuramente hai già controllato le Regional setting del Sistema operativo; per esperienza personale a me è capitato con il 2005; ho disinstallato sql, impostato le regional in italiano, restartato il server e reinstallato sql... e tutto è andato ok.
Non so con il 2008...
Ciao.

Zagor60 Profilo | Junior Member

Bgiorno,

si ho controllatto che l'impostazioni sia su Italia, poi ho provato ha disintallare sql server 2008 R2, ancora ho scollegato il database da sql server , ho sotituito il file con una copia precedentemente funzionante e ho ricolegato il tutto , ma niente , mi viene sempre 2011/02/23
Slt

lbenaglia Profilo | Guru

>oggi ho re-installato sql server 2008 R2 , ed improvisamente
>le date da per es. 01/01/2011 adesso sono convertire in 2011/01/01
>come faccio a ritornale come prima?

Ciao,

i data type date, time, datetime, datetime2, datetimeoffset e smalldatetime memorizzano le informazioni in formato numerico, pertanto le formattazioni sono a carico delle applicazioni client (SSMS è una di queste).
Come ti è già stato suggerito il formato di visualizzazione viene prelevato dalle regional options a livello di sistema operativo (se l'applicazione lo prevede), mentre quello relativo alla "interpretazione" delle date da parte di SQL Server effettuando conversioni implicite da stringa ad un data type date/time dipende dalla lingua associata alla login utilizzata per autenticarsi all'istanza (o dall'impostazione SET DATEFORMAT).

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/

Zagor60 Profilo | Junior Member

Ciao,

nelle opzioni internazionali ho settato italia, l'errore è che ho sbagliato l'installazione invece che sqlserver 2008R2 ita. ho installato quella in inglese.Ho provato a disinstallare quest'ultima e installare quella in italiano ma è rimasto tutto invariato.

Adesso cosa devo fare per cambiare la lingua?

salve

lbenaglia Profilo | Guru

>nelle opzioni internazionali ho settato italia, l'errore è che
>ho sbagliato l'installazione invece che sqlserver 2008R2 ita.
>ho installato quella in inglese.Ho provato a disinstallare quest'ultima
>e installare quella in italiano ma è rimasto tutto invariato.

Ci spieghi dove vedi quelle date?
Si riferiscono a cosa?
Che programma usi per interrogare il db?

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/

Zagor60 Profilo | Junior Member

Ci spieghi dove vedi quelle date?
Si riferiscono a cosa?
Che programma usi per interrogare il db?

Ciao,
premetto avevo terminato un programma e tutto era funzionante.
Poi ho formattato il pc.
Ho installato di nuovo tutto , visual studio 2008 , sql server 2008 R2 ecc
Poi ho lanciato il programma (sempre in fase di progettazione) e mi dava errore di convesione nvarchar a datetime , sono andato a vedere in dati nella tabelle e ho notato che la data e ore erano per es. 2011/02/11 18.00.00, invece come era precedentemente 11/02/2011 18.00.00.
Salvami Benaglia
Dimnticavo nella proprietà server la lingua è : Inglese(Stati Uniti)

Ciao!

lbenaglia Profilo | Guru

>premetto avevo terminato un programma e tutto era funzionante.
>Poi ho formattato il pc.
>Ho installato di nuovo tutto , visual studio 2008 , sql server
>2008 R2 ecc
>Poi ho lanciato il programma (sempre in fase di progettazione)
>e mi dava errore di convesione nvarchar a datetime , sono andato
>a vedere in dati nella tabelle e ho notato che la data e ore
>erano per es. 2011/02/11 18.00.00, invece come era precedentemente
>11/02/2011 18.00.00.

Con cosa hai interrogato le tabelle?
Gli errori di cast saranno stati dovuti al fatto che come ti ho già spiegato la login utilizzata per autenticarsi all'istanza era impostata in una lingua che prevede un formato di data e ora differente a quello specificato nella stringa che intendevi convertire.

>Salvami Benaglia
LOL!

>Dimnticavo nella proprietà server la lingua è : Inglese(Stati
>Uniti)
A cosa ti stai riferendo? Alla proprietà Language dell'istanza SQL Server? In questo caso è indifferente ai tuoi fini.

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/

Zagor60 Profilo | Junior Member

Allora,

1) interrogo le tabelle con visual studio.
2) Entro in sql server solo con autenticazione di windows e senza login
3) Andando con ds del mouse sul server , poi proprietà--> generale e lì leggo lingua inglese(Stati Uniti)


lbenaglia Profilo | Guru

>1) interrogo le tabelle con visual studio.
Non utilizzo VS, usa SSMS per interfacciarti all'istanza.

>2) Entro in sql server solo con autenticazione di windows e senza
>login
La Windows Authentication prevede che in SQL Server sia stata definita una login mappata al tuo account Windows. Senza login non ci si autentica, quindi niente accesso ai db in essa contenuti.
In fase di setup ti viene espressamente chiesto se vuoi che l'account utilizzato per l'installazione sia o meno sysadmin dell'istanza e questo non fa altro che create la login al posto tuo attribuendole i massimi permessi consentiti (scelta pessima se si utilizza una tale login da parte di una applicazione senza restringere l'accesso sugli oggetti).

>3) Andando con ds del mouse sul server , poi proprietà-->
>generale e lì leggo lingua inglese(Stati Uniti)
Significa che l'istanza è stata installata in lingua inglese e di default tutte le login erediteranno questa lingua (e di conseguenza il formato di data e ora), ma nulla ti vieta di impostare una lingua differente tramite il comando T-SQL

ALTER LOGIN <nome login> SET DEFAULT_LANGUAGE = italiano;

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/

Zagor60 Profilo | Junior Member

Scusa l'ignoranza ,
ma questa stringa "ALTER LOGIN <nome login> SET DEFAULT_LANGUAGE = italiano;" dove devo scriverla?

Una domanda, perchè disinstallando e poi installando una versione in italiano rimane tutto invariato?

lbenaglia Profilo | Guru

>Scusa l'ignoranza ,
>ma questa stringa "ALTER LOGIN <nome login> SET DEFAULT_LANGUAGE
>= italiano;" dove devo scriverla?
Lancia SQL Server Management Studio (SSMS), autenticati in Windows Authentication, New Query, sostituisci a <nome login> la login che intendi modificare ed esegui il comando (ad es. premendo F5).
Se non hai installato SSMS, lo trovi qua:
http://www.microsoft.com/downloads/en/details.aspx?familyid=56AD557C-03E6-4369-9C1D-E81B33D8026B&displaylang=en

>Una domanda, perchè disinstallando e poi installando una versione
>in italiano rimane tutto invariato?
Da quanto hai scritto prima SQL Server è ancora in inglese, ma per la terza volta ti dico che questo non è un problema, solo che nei cast impliciti da stringa a datetime il formato della data sarà quello English US.
Il precedente comando T-SQL non fa altro che impostare ad italiano la lingua della login specificata, e così pure il formato di data e ora (oltre alla valuta, al separatore decimale, delle migliaia, ecc...).

Ad ogni modo questa impostazione non influisce in alcun modo con la formattazione in lettura delle informazioni datetime, attività a carico dell'applicazione client. Ora, non chiedermi cosa combina la tua applicazione (non ti so nemmeno dire se VS applica automaticamente una formattazione basata sulle Regional Options per le apps sviluppate con esso, dato che è passato un decennio dai miei ultimi sviluppi ).

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/

Zagor60 Profilo | Junior Member

bgiorno ,

ho fatto ciò che mi hai detto:
Lancia SQL Server Management Studio (SSMS), autenticati in Windows Authentication, New Query, sostituisci a <nome login> la login che intendi modificare ed esegui il comando (ad es. premendo F5).

Però dove devo salvare la query?

Slt

lbenaglia Profilo | Guru

>Però dove devo salvare la query?
Non devi salvarla, devi solo eseguirla dopo aver sostituito <nome login> con la login che intendi modificare (ad esempio premendo F5).

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/

Zagor60 Profilo | Junior Member

l'ho eseguita ma non mi ha cambiato nulla.

Ho usato questa:
USE [master]
GO
ALTER LOGIN [LOGIN] WITH DEFAULT_LANGUAGE = [italiano]
GO

perchè con SET mi dava errore
ciao

lbenaglia Profilo | Guru

>l'ho eseguita ma non mi ha cambiato nulla.
Non è vero, ora i cast da stringa a datetime rispetterà il formato italiano.
Quello che non cambia, come ripetuto più volte, è la formattazione in lettura di una informazione datetime. Prova a chiedere sul forum dedicato a Visual Studio dato che NON E' un problema di SQL Server.

>Ho usato questa:
>USE [master]
>GO
>ALTER LOGIN [LOGIN] WITH DEFAULT_LANGUAGE = [italiano]
>GO
>
>perchè con SET mi dava errore
Si hai ragione, errore mio.

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/

Zagor60 Profilo | Junior Member

Ciao,

scusa stavo facendo l'errore che dopo aver modificato la lingua con la stringa non avevo + lanciato visual studio.

Cmq ho provato funziona tutto regolarmente.

Grazie

Alla prox.

6 un grande


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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5