SQLShack (Italiano)

postato in: Articles | 0

In questo articolo, discuteremo e impareremo le basi e tutti i dettagli sulle operazioni di conversione dei tipi di dati di SQL Server e esamineremo anche le funzioni integrate di SQL CONVERT e TRY_CONVERT con vari esempi. In un primo momento, spiegheremo e chiariremo la sintassi della funzione SQL CONVERT e poi impareremo come possiamo rendere i dati di processo di conversione numerici e tipi di dati di data/ora in dati di carattere.,

Implicito vs esplicito

Il processo di modifica del tipo di dati di un valore in un altro tipo di dati è indicato come conversione del tipo di dati e anche quasi tutti i linguaggi di programmazione includono alcuni tipi di funzioni o funzionalità di conversione dei dati. Quando rivolgiamo la nostra prospettiva a SQL Server per discutere i dettagli delle operazioni di conversione dei dati SQL, in un primo momento possiamo separare il processo di conversione dei dati in due parti; conversioni implicite ed esplicite., La conversione implicita viene eseguita da SQL Server per esigenze interne e puoi anche trovare ulteriori dettagli nell’articolo Conversione implicita in SQL Server. La conversione esplicita viene eseguita esplicitamente da un programmatore o amministratore di database e allo stesso tempo questo processo di conversione viene effettuato con l’aiuto di qualsiasi funzione di conversione dei dati. In questo articolo, ci concentreremo in particolare sulla funzione SQL CONVERT. Questa funzione fornisce un mezzo per convertire un tipo di dati in un altro tipo di dati specificato. In un primo momento, interpreteremo la sintassi della funzione SQL CONVERT.,

la Sintassi

1
la CONVERSIONE (tipo di dati (lunghezza), di espressione, di stile)

data_type: Questo parametro definisce il tipo di dati di destinazione, che deve essere convertito. il parametro data_type può prendere questi tipi di dati come input che sono mostrati nella seguente lista di array.

lunghezza: Questo è un parametro opzionale che specifica la lunghezza del tipo di dati di destinazione., Il valore predefinito di questo parametro è 30.

espressione: Questo parametro specifica il valore che vogliamo convertire in un altro tipo di dati.

style: Questo è un parametro intero che specifica lo stile di output del valore convertito. Questo valore è più utile per datare i formati di tipo di dati.

Ora, rafforzeremo queste istruzioni teoriche con vari esempi pratici.

Converti Float in Int

In questo esempio, convertiremo un tipo di dati float in integer., Nella seguente query, dichiareremo una variabile che il tipo di dati è float e quindi useremo la funzione SQL CONVERT per convertire il valore float in integer in modo che eseguiremo l’operazione di conversione dei dati.,

1
2
3
4
5
6

–Dichiarazione di una variabile float
AFFERMANDO @FloatVal COME Float
–di Assegnare un valore float variabile
SET @FloatVal = 1132.,12345
–Convertire il valore di tipo float, int
SELEZIONARE CONVERT(int, @FloatVal) COME ConvertedValue

Convert Float Varchar

In questo esempio, la conversione di un valore float varchar valore. Questo esempio è molto simile a quello precedente, ma l’unica differenza è che convertiremo il valore float in varchar.,

1
2
3
4
5
6

–Dichiarazione di una variabile float
AFFERMANDO @FloatVal COME Float
–di Assegnare un valore float variabile
SET @FloatVal = 1132.,12345
–Convert float valore varchar
SELEZIONARE CONVERT(varchar, @FloatVal) COME ConvertedValue

Nell’esempio seguente noi non inviare alcun valore per il parametro della lunghezza di SQL CONVERT funzione, in modo che la lunghezza del parametro deve essere impostato al valore di default. Come già notato nella spiegazione della sintassi della funzione SQL CONVERT, questo valore predefinito è 30 e ora lo dimostreremo., Nella seguente query, creeremo una tabella temporanea e inseriremo il valore convertito in questa tabella e quindi analizzeremo la struttura dei dati di questa tabella.,

1
2
3
4
5
6
7
8
9
10

DROP TABLE IF EXISTS TestConvertedTable
–Dichiarazione di una variabile float
AFFERMANDO @FloatVal COME Float
–di Assegnare un valore float variabile
SET @FloatVal = 1132.,12345
Convert Converti il valore float in varchar
SELEZIONA CONVERT(varchar, @FloatVal) COME ConvertedValue IN TestConvertedTable
— Analizza la tabella temporanea
SELEZIONA NOME_TABELLA,NOME_COLONNA,DATA_TYPE,CHARACTER_MAXIMUM_LENGTH
DA INFORMATION_SCHEMA.,COLONNE DOVE TABLE_NAME=’TestConvertedTable’

Come si può vedere nell’immagine sopra, il tipo di dati float era convertito al valore di varchar e non abbiamo impostato il parametro della lunghezza in modo che SQL Server applicato il valore predefinito per il parametro di lunghezza 30.

Ora, imposteremo il parametro length della funzione SQL CONVERT e quindi ricontrolleremo la lunghezza del tipo di dati varchar.,

1
2
3
4
5
6
7
8
9
10

DROP TABLE IF EXISTS TestConvertedTable
–Dichiarazione di una variabile float
AFFERMANDO @FloatVal COME Float
–di Assegnare un valore float variabile
SET @FloatVal = 1132.,12345
Convert Converti il valore float in varchar
SELEZIONA CONVERT(varchar(20), @FloatVal) COME ConvertedValue IN TestConvertedTable
— Analizza la tabella temporanea
SELEZIONA NOME_TABELLA,NOME_COLONNA,DATA_TYPE,CHARACTER_MAXIMUM_LENGTH
DA INFORMATION_SCHEMA.COLONNE DOVE TABLE_NAME= ‘TestConvertedTable’

Converti denaro in Varchar

Il tipo di dati di SQL Server money aiuta a memorizzare valori monetari., Possiamo definire valori monetari preceduti da un simbolo di valuta, tuttavia SQL Server non memorizza i simboli di valuta o qualsiasi dato correlato al simbolo di valuta. Nella seguente query, convertiremo il tipo di dati money in varchar e useremo anche il parametro style della funzione SQL convert. Con l’aiuto del parametro di stile, possiamo determinare delimitatori di virgole e lunghezza della cifra decimale destra. Il grafico seguente mostra il valore del parametro style e l’output della funzione SQL CONVERT.,

Value

Style Parameter

Comma Delimiter

Right decimal digit

Output

no

yes

4,936.,56

no

La conversione Galleggiante e di Reale Varchar

Float e vero che i tipi di dati numerici approssimati tipi di dati in SQL Server e significa che questi tipi di dati non conservare i valori esatti. Memorizzano un’approssimazione molto ravvicinata del valore memorizzato. Ora, spiegheremo la concezione approssimativa del tipo di dati numerici., Nella seguente query, creeremo una tabella che ha due colonne e i tipi di dati di queste colonne sono float e real e quindi inseriremo alcuni valori numerici. In realtà, ci aspettavamo numeri a due cifre nella tabella, tuttavia il tipo di dati reale e float memorizza i valori più vicini ai valori attesi.

La tabella seguente è citata da Microsoft Docs e questa tabella spiega lo stile di conversione dei tipi di dati float e real in dati testuali.,

Suggerimento: La notazione scientifica è un metodo speciale per esprimere numeri molto grandi o piccoli per lo più usati nella scienza.

Valore

Uscita

0 (default)

Un massimo di 6 cifre. Utilizzato in notazione scientifica, quando appropriato.

Sempre 8 cifre. Sempre usato in notazione scientifica.

Sempre 16 cifre. Sempre usato in notazione scientifica.

Sempre 17 cifre. Utilizzare per la conversione senza perdita di dati., Con questo stile, ogni float distinto o valore reale è garantito per la conversione in una stringa di caratteri distinta.

Ora dimostriamo un esempio che include tutti gli stili di conversione dei dati secondo questa tabella.

Come puoi vedere in precedenza, il set di risultati mostra che il parametro style cambia l’output della funzione SQL CONVERT.

Converti Data / Ora in Varchar

I formati Data/Ora possono variare in base alle impostazioni locali e per questo motivo abbiamo bisogno di vari formati per rappresentare data / ora., Immagina di avere un’applicazione e diversi utenti di paesi utilizzano questa applicazione, quindi se qualcuno collega questa applicazione negli Stati Uniti, devi rappresentare la data come formato mese/giorno/anno. Dall’altro lato, un altro utente collega questa applicazione nel Regno Unito e devi rappresentare il formato della data come formato giorno/mese/anno. In questo caso dobbiamo determinare la data/ora che rappresenta lo stile in base all’impostazione della data/ora locale. sp_helplanguage stored procedure restituisce le lingue supportate con informazioni dettagliate in SQL Server.,

Inoltre, possiamo determinare la lingua per la sessione indicata e in questo modo possiamo adattare le funzioni di data / ora a un particolare linguaggio. Nella seguente query, imposteremo la lingua su polacco e quindi potremo vedere il cambiamento del nome del mese e del giorno in base alle impostazioni locali polacche.

Suggerimento: Come regola generale, se si progetta un database di applicazioni multinazionali, memorizzare sempre l’ora UTC (Coordinated Universal Time) in una colonna in modo da evitare problemi di data/ora dovuti alle impostazioni locali.,risultato della normativa tedesca, possiamo utilizzare la seguente query:

1
SELEZIONARE GETDATE() COME ,CONVERT(Varchar(50),GETDATE(),104) COME

Nei seguenti cheat tabella, è possibile trovare ogni uso di una combinazione di stile parametro e tutto il formato di output di SQL CONVERT (), funzione data/ora a carattere conversioni di dati.,

ow, dimostreremo questa cheat table con tutte le combinazioni per la funzione SQL GETDATE in modo da poter capire l’influenza del parametro style sugli output della funzione SQL CONVERT.

Ora, menzioneremo alcuni punti che dobbiamo considerare sull’operazione di conversione di data / ora. All’inizio di questa sezione, abbiamo parlato delle opzioni e delle impostazioni della lingua di SQL Server, quindi se cambiamo l’impostazione della lingua influisce su alcuni degli output dello stile di conversione data/ora., Nell’esempio seguente, vogliamo convertire i risultati dalla funzione GETDATE in modo che questa impostazione influenzi direttamente il nome del mese abbreviato della funzione SQL CONVERT.

Un’altra considerazione riguarda il formato anno. In alcune circostanze, possiamo usare il parametro style che non restituisce il formato century, ma questo caso può causare alcune situazioni confuse. Come nel seguente esempio abbiamo due date diverse e anche queste date memorizzano anni diversi, tuttavia l’output della funzione SQL CONVERT è simile.,

TRY_CONVERT ()

La funzione SQL TRY_CONVERT è una forma avanzata della funzione SQL CONVERT. Il vantaggio principale della funzione SQL TRY_CONVERT è la protezione dagli errori di conversione dei dati durante l’esecuzione della query. È possibile che si verifichino errori sul processo di conversione dei dati con l’operazione SEGRETA SQL a causa di dati non adatti o sporchi. Tuttavia, la funzione SQL TRY_CONVERT ci consente di evitare questi tipi di errori. Allo stesso tempo, non ci sono differenze di sintassi tra le funzioni SQL CONVERT e TRY_CONVERT., La funzione SQL TRY_CONVERT restituisce il valore NULL se la conversione dei dati genera un errore. Nell’esempio seguente, in un primo momento cercheremo di convertire il valore del carattere in un numero intero attraverso la funzione SQL CONVERT e questa operazione restituirà un errore.,

1
SELEZIONARE CONVERT(INT,’AnyString’) COME ConvertFunc

d’altra parte, se si utilizza SQL TRY_CONVERT invece la funzione SQL funzione di CONVERSIONE per la stessa query restituirà valore NULL.,

1
SELECT TRY_CONVERT(INT,’AnyString’) AS ConvertFunc

Conclusion

In this article, we thoroughly reviewed the SQL CONVERT function syntax, details and significant considerations. Data conversion processes have wide usage, in practice, therefore in this article we demonstrated various examples., Ti consiglio di fare attenzione alla conversione del tipo di dati di data/ora se il tuo database viene utilizzato in diversi paesi. Allo stesso modo la formattazione dei tipi di dati data/ora è un altro punto importante.

  • Autore
  • Post Recenti
Esat Erkec è un SQL Server professional che ha iniziato la sua carriera 8+ anni fa come Sviluppatore di Software. È un esperto di soluzioni certificate Microsoft SQL Server.,
La maggior parte della sua carriera si è concentrata sull’amministrazione e lo sviluppo di database SQL Server. I suoi interessi attuali sono in amministrazione di database e Business Intelligence. Lo si può trovare su LinkedIn.,
guarda tutti i messaggi Esat Erkec

Ultimi messaggi di Esat Erkec (vedi tutti)
  • guida introduttiva di Programmazione SQL – 3 febbraio 2021
  • Come leggere un piano di esecuzione con tutti i dettagli, 28 gennaio 2021
  • SQL SELECT TOP dichiarazione panoramica ed esempi – 25 gennaio 2021

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *