in dit artikel zullen we de basisprincipes en alle details over SQL Server data type converting operaties bespreken en leren en zullen we ook de ingebouwde functies van SQL CONVERT en TRY_CONVERT bekijken met verschillende voorbeelden. Eerst zullen we de syntaxis van de SQL CONVERT-functie uitleggen en verduidelijken en dan zullen we leren hoe we gegevens kunnen omzetten proces numerieke en datum/tijd gegevenstypen naar karaktergegevens.,
impliciet Versus expliciet
het proces van het veranderen van data type van een waarde in een ander data type wordt aangeduid als data type conversie en ook bijna alle programmeertalen bevatten een soort data conversie functies of functionaliteit. Wanneer we ons perspectief op SQL Server om te zetten om details van SQL Data conversie operaties te bespreken, in eerste instantie kunnen we data conversie proces te scheiden in twee delen; impliciete en expliciete conversies., Impliciete conversie wordt gedaan door SQL Server voor interne behoeften en u kunt ook extra details vinden in het artikel impliciete conversie in SQL Server. Expliciete conversie wordt expliciet uitgevoerd door een database programmeur of beheerder en op hetzelfde moment dit conversieproces wordt gemaakt met behulp van een data conversie functie. In dit artikel zullen we ons vooral richten op de SQL CONVERT-functie. Deze functie biedt een middel om een gegevenstype naar een ander gespecificeerd gegevenstype te converteren. Eerst zullen we de syntaxis van de SQL CONVERT-functie interpreteren.,
Syntax
1
|
ZETTEN (gegevenstype (lengte), expressie, stijl)
|
data_type: Deze parameter definieert de doelgroep gegevenstype dat omgezet moet worden. data_type parameter kan deze gegevenstypen als invoer nemen die in de onderstaande array lijst worden getoond.
lengte: dit is een optionele parameter die de lengte van het gegevenstype van het doel specificeert., De standaardwaarde van deze parameter is 30.
expressie: deze parameter specificeert de waarde die we naar een ander gegevenstype willen converteren.
style: dit is een integer parameter die de uitvoerstijl van de geconverteerde waarde specificeert. Deze waarde is nuttiger om data type formaten dateren.
nu zullen we deze theoretische instructies versterken met verschillende praktische voorbeelden.
converteer Float naar Int
In dit voorbeeld zullen we een float data type converteren naar integer., In de volgende query verklaren we een variabele dat gegevenstype float is en dan zullen we de SQL CONVERT-functie gebruiken om floatwaarde naar integer te converteren, zodat we daarvoor gegevensconversie uitvoeren.,
1
2
3
4
5
6
|
–Waarbij een float variabele
met VERMELDING van @FloatVal ALS Float
–Toewijzen van een float waarde aan de variabele
INSTELLEN @FloatVal = 1132.,12345
–converteer floatwaarde naar int
SELECT CONVERT(int, @FloatVal) AS ConvertedValue
|
converteer Float naar varchar
in dit voorbeeld converteren we een float waarde naar varchar waarde. Dit voorbeeld is zeer vergelijkbaar met de vorige, maar het enige verschil is dat we float waarde converteren naar varchar.,
1
2
3
4
5
6
|
–Waarbij een float variabele
met VERMELDING van @FloatVal ALS Float
–Toewijzen van een float waarde aan de variabele
INSTELLEN @FloatVal = 1132.,12345
–Convert float value to varchar
SELECT CONVERT(varchar, @FloatVal) AS ConvertedValue
|
In in het volgende voorbeeld sturen we geen waarde naar lengte parameter van de SQL CONVERT functie, dus lengte parameter moet worden ingesteld op standaard waarde. Zoals we al hebben opgemerkt in de syntaxis uitleg van de SQL CONVERT functie, is deze standaardwaarde 30 en nu zullen we dit bewijzen., In de volgende query maken we een tijdelijke tabel en voegen we de geconverteerde waarde in deze tabel in en analyseren we de gegevensstructuur van deze tabel.,
1
2
3
4
5
6
7
8
9
10
|
DROP TABLE INDIEN AANWEZIG TestConvertedTable
–Waarbij een float variabele
met VERMELDING van @FloatVal ALS Float
–Toewijzen van een float waarde aan de variabele
INSTELLEN @FloatVal = 1132.,12345
— convert float waarde naar varchar
SELECT CONVERT(varchar, @FloatVal) AS ConvertedValue INTO TestConvertedTable
— analyseer de tijdelijke tabel
select TABLE_NAME,COLUMN_NAME,DATA_TYPE,CHARACTER_MAXIMUM_LENGTH
uit INFORMATION_SCHEMA.,Kolommen waar TABLE_NAME=’TestConvertedTable’
|
zoals u kunt zien in de bovenstaande afbeelding, werd het floatgegevenstype geconverteerd naar varchar-waarde en hebben we de lengthparameter niet ingesteld, dus SQL Server de standaardwaarde van de lengteparameter toegepast als 30.
nu zullen we de lengteparameter van de SQL CONVERT-functie instellen en vervolgens de lengte van het varchar-gegevenstype opnieuw controleren.,
1
2
3
4
5
6
7
8
9
10
|
DROP TABLE INDIEN AANWEZIG TestConvertedTable
–Waarbij een float variabele
met VERMELDING van @FloatVal ALS Float
–Toewijzen van een float waarde aan de variabele
INSTELLEN @FloatVal = 1132.,12345
— convert float waarde naar varchar
SELECT CONVERT(varchar (20), @FloatVal) AS ConvertedValue INTO TestConvertedTable
— analyseer de tijdelijke tabel
select TABLE_NAME,COLUMN_NAME,DATA_TYPE,CHARACTER_MAXIMUM_LENGTH
uit INFORMATION_SCHEMA.Kolommen waarin TABLE_NAME= ‘TestConvertedTable’
|
geld converteren naar Varchar
Het SQL Server money data type helpt bij het opslaan van monetaire waarden., We kunnen monetaire waarden definiëren voorafgegaan door een valutasymbool, maar SQL Server slaat de valutasymbolen of gegevens die gerelateerd zijn aan het valutasymbool niet op. In de volgende query zullen we het geldgegevenstype converteren naar varchar en we zullen ook de stijlparameter van de SQL convert-functie gebruiken. Met behulp van de parameter stijl kunnen we komma scheidingstekens en lengte van het juiste decimale cijfer bepalen. De volgende grafiek toont de waarde van de stijlparameter en de uitvoer van de SQL CONVERT-functie.,
Value |
Style Parameter |
Comma Delimiter |
Right decimal digit |
Output |
no |
||||
yes |
4,936.,56 |
converteer Float en Real naar Varchar
float en echte gegevenstypen zijn geschatte numerieke gegevenstypen in SQL Server en dit betekent dat deze gegevenstypen geen exacte waarden opslaan. Ze slaan een zeer nauwe benadering van de opgeslagen waarde. Nu zullen we de geschatte numerieke datatype-conceptie uitleggen., In de volgende query maken we een tabel met twee kolommen en de gegevenstypen van deze kolom zijn zwevend en reëel en vervolgens voegen we enkele numerieke waarden in. Eigenlijk verwachtten we twee cijfers in de tabel, maar het echte en float-gegevenstype slaat de waarden op die het dichtst bij de verwachte waarden liggen.
de onderstaande tabel wordt geciteerd uit Microsoft Docs en deze tabel legt uit hoe de float-en echte gegevenstypen worden geconverteerd naar tekstuele gegevens.,
Tip: wetenschappelijke notatie is een speciale methode voor het uitdrukken van zeer grote of kleine getallen, meestal gebruikt in de wetenschap.
waarde |
uitvoer |
0 (standaard) |
maximaal 6 cijfers. Gebruikt in wetenschappelijke notatie, indien van toepassing. |
altijd 8 cijfers. Altijd gebruikt in wetenschappelijke notatie. |
|
altijd 16 cijfers. Altijd gebruikt in wetenschappelijke notatie. |
|
altijd 17 cijfers. Gebruik voor lossless conversie., Met deze stijl, elke verschillende float of echte waarde is gegarandeerd om te zetten in een verschillende tekenreeks. |
laten we nu een voorbeeld demonstreren dat alle data conversie stijlen bevat volgens deze tabel.
zoals u kunt zien in het bovenstaande, toont de result set aan dat de style parameter de uitvoer van de SQL CONVERT functie verandert.
converteer datum / tijd naar Varchar
datum / tijd formaten kunnen variëren afhankelijk van lokale instellingen en om deze reden hebben we verschillende formaten nodig om datum/tijd weer te geven., Stel je voor dat je een applicatie hebt en verschillende landen gebruikers gebruiken deze applicatie, dus als iemand deze applicatie in de VS verbindt, moet je de datum vertegenwoordigen als Maand/Dag/jaar formaat. Aan de andere kant, een andere gebruiker verbindt deze toepassing in het Verenigd Koninkrijk en je moet datumnotatie vertegenwoordigen als Dag/Maand/Jaar formaat. In dit geval moeten we de datum/tijd die stijl vertegenwoordigt bepalen volgens de lokale datum/tijd instelling. sp_helplanguage opgeslagen procedure retourneert ondersteunde talen met gedetailleerde informatie in SQL Server.,
daarnaast kunnen we de taal voor de opgegeven sessie bepalen en op deze manier kunnen we Datum/Tijd functies aanpassen aan een bepaalde taal. In de volgende query, zullen we Taal instellen op pools en dan kunnen we de verandering van de maand en dag Naam volgens Poolse locale zien.
Tip: als algemene regel, als u een multinationale applicatiedatabase ontwerpt, slaat u de UTC (Coordinated Universal Time) Tijd altijd op in één kolom, zodat u datum – /tijdproblemen door lokale instellingen kunt voorkomen.,resultaat aan de duitse norm, kunnen we gebruik maken van de volgende query:
1
|
SELECTEER GETDATE() ALS ,CONVERT(Varchar(50),GETDATE(),104) ALS
|
In de volgende cheat tabel, u kunt vinden elke gebruik combinatie van stijl parameter en de hele output formaat van SQL ZETTEN () functie voor de datum/tijd om het teken data conversies.,
ow, we zullen deze cheat tabel demonstreren met alle combinaties voor de SQL GETDATE functie zodat we de invloed van de stijl parameter op de SQL CONVERT functie uitgangen kunnen achterhalen.
nu zullen we enkele punten noemen die we moeten overwegen over Datum/Tijd conversie operatie. Aan het begin van deze sectie hebben we gesproken over SQL Server taalopties en instellingen, dus als we de taalinstelling wijzigen, beïnvloedt dit enkele van de datum/tijd conversie stijl uitgangen., In het voorbeeld hieronder willen we de resultaten van de GETDATE-functie converteren, zodat deze instelling direct van invloed is op de verkorte maandnaam van de SQL CONVERT-functie.
een andere overweging is het jaarformaat. In sommige omstandigheden kunnen we de stijlparameter gebruiken die geen century-indeling retourneert, maar dit geval kan verwarrende situaties veroorzaken. Zoals in het volgende voorbeeld hebben we twee verschillende datums en ook deze datums slaan verschillende jaren op, maar de uitvoer van de SQL CONVERT-functie is vergelijkbaar.,
TRY_CONVERT ()
De SQL TRY_CONVERT functie is een geavanceerde vorm van de SQL CONVERT functie. Het belangrijkste voordeel van de SQL TRY_CONVERT functie is het beschermen van gegevens omzetten fouten tijdens de query uitvoering. Het is mogelijk dat we fouten kunnen ervaren op data convert proces met de SQL geheime operatie als gevolg van niet-geschikte of vuile gegevens. Echter, de SQL TRY_CONVERT functie stelt ons in staat om dit soort fouten te voorkomen. Tegelijkertijd zijn er geen syntaxisverschillen tussen de SQL CONVERT en TRY_CONVERT functies., De SQL TRY_CONVERT functie retourneert NULL waarde als de gegevensconversie een fout genereert. In het onderstaande voorbeeld zullen we eerst proberen om de karakterwaarde naar een geheel getal te converteren via de SQL CONVERT-functie en deze bewerking zal een fout retourneren.,
1
|
SELECTEER CONVERT(INT,’AnyString’) ALS ConvertFunc
|
Aan de andere kant, als we gebruik maken van de SQL TRY_CONVERT functie in plaats van de SQL-functie CONVERTEREN van de query zal een NULL-waarde.,
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., Ik raad u aan voorzichtig te zijn met datum/tijd data type conversie als uw database wordt gebruikt in verschillende landen. Ook formatteren tot datum / tijd gegevenstypen is een ander belangrijk punt.
- Auteur
- Laatste Berichten
Bekijk alle berichten van Esat Erkec
- Aan de slag met SQL Programmering – 3 februari 2021
- Hoe lees ik een uitvoeringsplan met alle details – 28 januari 2021
- SQL SELECT-TOP-en verliesrekening overzicht en voorbeelden – januari 25, 2021
Geef een reactie