I denne artikkelen vil vi diskutere og lære grunnleggende og alle detaljer om SQL Server data type konvertering operasjoner, og også vi vil vurdere SQL KONVERTERE og TRY_CONVERT innebygde funksjoner med ulike prøver. Ved første, vi vil forklare og tydeliggjøre syntaksen for SQL KONVERTERE funksjon, og da vil vi lære hvordan vi kan gjøre data konvertering prosessen numerisk og dato/tid datatyper karakter data.,
Implisitt vs Eksplisitt
ferd med å endre datatypen til en verdi til en annen datatype er referert til som datatype konvertering og også nesten alle programmering språk inneholde noen form for data konvertering funksjoner eller funksjonalitet. Når vi slår vår perspektiv til SQL-Server for å diskutere detaljene i SQL data konvertering operasjoner, først vi kan skille data konvertering prosess i to deler; implisitt og eksplisitt konverteringer., Implisitt konvertering er gjort av SQL Server for interne behov, og du kan også finne mer informasjon i artikkelen Implisitt konvertering i SQL Server. Eksplisitt konvertering utføres eksplisitt av en database programmerer eller administrator og på samme tid denne konverteringen er gjort med hjelp av noen data-konvertering funksjonen. I denne artikkelen, vi vil særlig fokusere på SQL KONVERTERE funksjon. Denne funksjonen gir et middel til å konvertere en datatype til en annen datatypen. Ved første, vi vil tolke syntaksen for SQL KONVERTERE funksjon.,
Syntaks
1
|
KONVERTER (datatype (lengde), uttrykk, stil)
|
data_type: Denne parameteren definerer målet datatype som skal konverteres. data_type parameteren kan ta disse typer data, som en inngang som er vist i tabellen nedenfor listen.
lengde: Dette er en valgfri parameter som angir mål datatype lengde., Standard verdi for denne parameteren er 30.
uttrykk: Denne parameteren angir den verdi som vi ønsker å konvertere til en annen datatype.
stil: Dette er et heltall som parameter som angir utgang stil av den omregnede verdien. Denne verdien er mer nyttig for oppdaterte data type formater.
Nå vil vi forsterke denne teoretiske instruksjoner med ulike praktiske prøver.
Konverter Flyte til Int
I dette eksempelet, og vi vil konvertere en dupp data type heltall., I det følgende spørring, vil vi deklarerer en variabel som data type float og så vil vi bruke SQL KONVERTERE funksjon for å konvertere flyte verdi til heltall så for at vi skal utføre data konvertering drift.,
1
2
3
4
5
6
|
–Erklære en dupp variabel
OM @FloatVal SOM Flyter
–Tilordne en float-verdien til variabelen
ANGI @FloatVal = 1132.,12345
–Konvertere flyte verdi til int
VELG KONVERTER(int, @FloatVal) SOM ConvertedValue
|
Konverter Flyte til Varchar
I dette eksempelet, og vi vil konvertere en dupp verdi til varchar verdi. Dette eksemplet er svært lik den forrige, men den eneste forskjellen er at vi vil konvertere flyte verdi til varchar.,
1
2
3
4
5
6
|
–Erklære en dupp variabel
OM @FloatVal SOM Flyter
–Tilordne en float-verdien til variabelen
ANGI @FloatVal = 1132.,12345
–Konvertere flyte verdi til varchar
VELG KONVERTER(varchar, @FloatVal) SOM ConvertedValue
|
I det følgende eksemplet, vi vil ikke sende noen verdi til lengde parameter av SQL KONVERTERE funksjon, slik at lengden parameteren må bli satt til standard verdi. Som vi allerede nevnt i syntaksen forklaring av SQL KONVERTERE funksjon, denne standardverdien er 30 og nå vil vi bevise dette., I det følgende søket, vi vil opprette en midlertidig tabell og vi vil sette omregnede verdien til denne tabellen, og deretter vil vi analysere dataene strukturen i denne tabellen.,
1
2
3
4
5
6
7
8
9
10
|
DROP TABLE IF EXISTS TestConvertedTable
–Erklære en dupp variabel
OM @FloatVal SOM Flyter
–Tilordne en float-verdien til variabelen
ANGI @FloatVal = 1132.,12345
–Konvertere flyte verdi til varchar
VELG KONVERTER(varchar, @FloatVal) SOM ConvertedValue INN TestConvertedTable
— Analysere den midlertidige tabellen
VELG TABLE_NAME,COLUMN_NAME,DATA_TYPE,CHARACTER_MAXIMUM_LENGTH
FRA INFORMATION_SCHEMA.,KOLONNER HVOR TABLE_NAME=’TestConvertedTable’
|
Som du kan se i bildet ovenfor, float-data-type ble konvertert til varchar verdi, og vi gjorde ikke angi lengden parameter, slik SQL Server brukes standardverdien av lengden parameter som 30.
Nå, vil vi angi lengden parameter av SQL-KONVERTERE-funksjonen, og deretter kontrollerer lengden av varchar datatype.,
1
2
3
4
5
6
7
8
9
10
|
DROP TABLE IF EXISTS TestConvertedTable
–Erklære en dupp variabel
OM @FloatVal SOM Flyter
–Tilordne en float-verdien til variabelen
ANGI @FloatVal = 1132.,12345
–Konvertere flyte verdi til varchar
VELG KONVERTER(varchar(20), @FloatVal) SOM ConvertedValue INN TestConvertedTable
— Analysere den midlertidige tabellen
VELG TABLE_NAME,COLUMN_NAME,DATA_TYPE,CHARACTER_MAXIMUM_LENGTH
FRA INFORMATION_SCHEMA.KOLONNER HVOR TABLE_NAME=’TestConvertedTable’
|
Konverter Penger til å Varchar
SQL Server penger data type bidrar til å lagre monetære verdier., Vi kan definere monetære verdier innledes med en valuta symbol imidlertid SQL Server lagrer ikke valuta symboler eller alle data som er knyttet til valuta symbol. I det følgende søket, vi vil konvertere pengene data type varchar og vi vil også bruke style-parameteren for SQL konvertere funksjon. Med hjelp av style-parameteren, kan vi finne ut komma som skilletegn og lengden på høyre desimale siffer. Det følgende diagrammet viser den stil parameter verdi og utgang av SQL KONVERTERE funksjon.,
Value |
Style Parameter |
Comma Delimiter |
Right decimal digit |
Output |
no |
||||
yes |
4,936.,56 |
|||
ingen |
Konvertere Flyte og Ekte å Varchar
Float og ekte datatyper er omtrentlige numeriske data typer i SQL Server og det betyr at disse typer data, lagrer ikke eksakte verdier. De lagrer et svært nær tilnærming av den lagrede verdien. Vi skal nå forklare omtrentlig numeriske data type forestilling., I det følgende søket, vi vil lage en tabell som har to kolonner og disse kolonne typer data, er aktiv og reell, og så vil vi sette inn numeriske verdier. Faktisk, vi forventet tosifret tall i tabellen er imidlertid reell og flyte data type butikker nærmeste verdiene til forventede verdier.
tabellen nedenfor er sitert fra Microsoft Dokumenter og denne tabellen forklarer konvertering stil av flottøren og ekte typer data, for å tekstlig data.,
Tips: Vitenskapelig notasjon er en spesiell metode for å uttrykke meget stort antall eller små tall hovedsakelig brukes i naturfag.
Verdi |
Output |
0 (standard) |
maksimalt 6 sifre. Brukes i vitenskapelig notasjon, når det er hensiktsmessig. |
Alltid 8 sifre. Alltid brukes i vitenskapelig notasjon. |
|
Alltid av 16 sifre. Alltid brukes i vitenskapelig notasjon. |
|
Alltid 17 sifre. Bruk for tapsfri konvertering., Med denne stilen, hver distinkt flyte eller virkelige verdi, er garantert å konvertere til en distinkt karakter strengen. |
la oss Nå vise et eksempel som inneholder alle data konvertering stiler i henhold til denne nye tabellen.
Som du kan se ovenfor, og resultatene viser at stilen parameteren endringer utgangen av SQL KONVERTERE funksjon.
Konverter Dato/Klokkeslett for å Varchar
Dato/Klokkeslett formater kan variere i henhold til nasjonale innstillingene, og dette er årsaken til at vi krever ulike formater for å representere dato/tid., Tenk deg at du har et program og ulike land brukere bruker dette programmet, så hvis noen kobler dette programmet i U. S, du har til å representere den dato som måned/dag/år-format. På den andre siden, en annen bruker kobler dette programmet i STORBRITANNIA og du har til å representere dato formatet dag/måned/år-format. I dette tilfellet har vi å fastslå dato/tid representerer stil i henhold til nasjonale innstillinger innstilling av dato/klokkeslett. sp_helplanguage lagret prosedyre returnerer språk som støttes med detaljert informasjon i SQL Server.,
I tillegg, kan vi finne ut av språket oppgitt session og på denne måten kan vi tilpasse dato/klokkeslett funksjoner til bestemte språk. I det følgende søket, vi vil angi språk for å polere og så kan vi se endring i måneden og dagens navn i henhold til polsk nasjonale innstillinger.
Tips: Som en generell regel, hvis du vil utforme et multinasjonalt program database, alltid lagre UTC (Coordinated Universal Time) tid i en kolonne, slik at du kan unngå dato/tid-problemer på grunn av lokale innstillinger.,resultatet til tysk standard, kan vi bruke følgende spørring:
1
|
VELG GETDATE() AS ,KONVERTERE(Varchar(50),GETDATE(),104) SOM
|
I det følgende jukse bordet, du kan finne hver bruk kombinasjon av stil parameter og hele output format av SQL KONVERTERE () – funksjonen for dato/klokkeslett for å karakteren data konverteringer.,
mengde, vil vi demonstrere dette jukse tabell med alle kombinasjoner for SQL GETDATE funksjon, slik at vi kan finne ut påvirkning av style-parameteren til SQL KONVERTERE funksjon utganger.
Nå, vi vil nevne noen punkter som vi har til å vurdere om dato/tid konvertering drift. I begynnelsen av denne delen, vi snakket om SQL Server språk valg og innstillinger, så hvis vi vil endre språkinnstillingen det påvirker noen av dato/tid konvertering stil utganger., I bellow eksempel, vi ønsker å konvertere resultater fra GETDATE-funksjon, slik at denne innstillingen påvirker direkte forkortet måned navnet på SQL KONVERTERE funksjon.
en Annen vurdering er om året-format. I noen tilfeller kan vi bruke stil parameter som ikke returnerer tallet format, men denne saken kan føre til at noen forvirrende situasjoner. Slik som i følgende eksempel har vi to ulike datoer og også disse datoer lagre forskjellige år, men produksjonen av SQL KONVERTERE funksjon er lik.,
TRY_CONVERT ()
SQL TRY_CONVERT funksjonen er en avansert form for SQL KONVERTERE funksjon. Den største fordelen med SQL TRY_CONVERT funksjon er å beskytte fra data konvertering feil under spørring utførelse. Det er mulig at vi kan oppstå feil på data konvertere prosessen med SQL COVERT drift på grunn av ikke-egnet eller skitne data. Imidlertid, SQL TRY_CONVERT funksjonen gjør det mulig for oss å unngå disse typer feil. På samme tid, det er ingen syntaks forskjeller mellom SQL KONVERTERE og TRY_CONVERT funksjoner., SQL TRY_CONVERT funksjonen returnerer NULL verdi hvis data konvertering generere en feil. I eksempelet nedenfor, i første omgang vil vi prøve å konvertere karakter verdi til et heltall gjennom SQL KONVERTERE funksjon, og denne operasjonen vil returnere en feil.,
1
|
VELG KONVERTER(INT,’AnyString’) SOM ConvertFunc
|
På den annen side, hvis vi bruker SQL TRY_CONVERT funksjon i stedet for SQL KONVERTERE funksjon for den samme spørringen det vil returnere NULL-verdi.,
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., Jeg anbefaler deg å være forsiktig med dato/tid datatype konvertering hvis databasen blir brukt i ulike land. Likeledes formatering på dato/klokkeslett typer data, er et annet viktig punkt.
- Forfatter
- Siste Innlegg
de Fleste av hans karriere har vært fokusert på SQL Server-Database Administrasjon og Utvikling. Hans nåværende interesser er i database administrasjon og Business Intelligence. Du finner ham på LinkedIn.,
Vis alle innlegg av Esat Erkec
- Komme i gang med SQL-Programmering – februar 3, 2021
- Hvordan å lese en gjennomføringsplan med alle detaljer – 28. januar 2021
- SQL SELECT TOPPEN uttalelse oversikt og eksempler – 25 januar 2021
Legg igjen en kommentar