štvrtok, 20 jún 2019 09:50 Written by 2545 times
Rate this item
(1 Vote)

MS SQL - konverzie celých čísel, reálnych čísel, reťazcov, dátumov a časov, reťazcov v binárnom tvare

Zdravím databázových programátorov. Dnes si ukážeme zopár malých príkladov, ako konvertovať reálne čísla a celé čísla, dátumy, časy, reťazce, binárne zápisy reťazcov na iné tvary. SQL dotazy sú generované pomocou SQL príkazov bez pomoci čítania dát z tabuľky.

 Príklady:

-- konverzia reálneho císla na celocíselné a rôzne kombinácie s funkciou CAST
SELECT 
	8.5 AS Original, 
	CAST(8.5 AS int) AS int, 
	CAST(8.5 AS decimal(6,4)) AS decimal;

-- konverzia reálneho císla na celocíselné a rôzne kombinácie s funkciou CONVERT
SELECT 
	8.5 AS Original, 
	CONVERT(int, 8.5) AS int, 
	CONVERT(real, 8.5) AS real, 
	CONVERT(decimal(6,4), 8.5) AS decimal    
;


-- konvertovanie cisla na retazec + spajánie retazcov ...
SELECT 'Cena tovaru je: ' + CAST(100 AS varchar(12)) AS Price;

-- zaokrúhlovanie pomocou pretypovania ...
SELECT  
	CAST(11.6496 AS int) as trunc1,
        CAST(-11.6496 AS int) as trunc2,
        CAST(11.6496 AS numeric) as round1,
        CAST(-11.6496 AS numeric) as round2;
         
-- konvertovanie dátumu a casu na retazec v rôznych tvaroch ...         
SELECT   
   GETDATE() AS "Unconverted Date a time",  
   CAST(GETDATE() AS nvarchar(30)) AS "Using of cast",  
   CONVERT(nvarchar(30), GETDATE(), 126) AS "Using of convert to ISO8601"
;           

-- konverzie dátumov a casov
SELECT   
   '2006-04-25T15:50:59.997' AS UnconvertedText,  
   CAST('2006-04-25T15:50:59.997' AS datetime) AS UsingCast,  
   CONVERT(datetime, '2006-04-25T15:50:59.997', 126) AS UsingConvertFrom_ISO8601 
;  

-- konverzie retazcov v binárnom tvare na znaky a naopak
SELECT 
	CONVERT(char(8), 0x4E616d65, 0) AS "Binary to character Style 0",
	CONVERT(char(8), 0x4E616d65, 1) AS "Binary to character Style 1",
	CONVERT(char(8), 0x4E616d65, 2) AS "Binary to character Style 2",
	CONVERT(binary(8), 'Name', 0) AS "Character to binary Style 0",
	CONVERT(binary(4), '0x4E616D65', 1) AS "Character to binary Style 1",
	CONVERT(binary(4), '4E616D65', 2) AS "Character to binary Style 2"     
; 

-- konverzia celého císla na hexadecimálne a naopak
SELECT 
	CONVERT(VARBINARY(8), 2100457),
	CONVERT(INT, 0x00200CE9)
;

 

Dúfam, že tieto zdrojové SQL kódy pomôžu mnohým programátorom a ušetria veľa času pri vymýšlaní a programovaní.

S pozdravom. Alojz Benďák.

Last modified on štvrtok, 20 jún 2019 10:15
Alojz Benďák

Autor je administrátor webu a venuje sa programovaniu takmer 23 rokov.

  • prvý kontakt s počítačmi na strednej škole - PMD 1,2,3, PP06, Atari, Sinclair (programovanie v jazyku: strojový kód, basic a pascal):  2 roky
  • na VŠ - jazyky Turbo pascal a Turbo C: 1rok
  • programovanie databázového ekonomického širokoškálneho software v Delphi a C++ Borland (databázy Paradox): 8 rokov v Codex s.r.o. Nitra
  • programovanie webových aplikácií na databázach MySQL a MS SQL server: 1 roky na živnosť (firmy: Hermes Nitra, Schindler v Bratislave)
  • pracoval ako DBA v Homecredit Brno a vo VÚB Bratislava ako vyvojár + optimalizácie v SQL a PL/SQL na Oracle 11g (firma Accenture)
  • programoval programy pre súkromné firmy pre HW na skenovanie povrchov nádrží pre skladovanie tekutých palív (pristroj Leica)
  • momentálne pracuje ako DBA pod Oracle 11g a ako vyvojár vnútropodnikových databázových aplikacií v PHP, SQL, C++, C# a interface v PL/SQL: 11 rokov
  • ďalej programuje s HTML, CSS, Ajax, Javascript, VBA, MS visual C++ a C# malé podporné aplikácie
  • certifikát SQL expert for Oracle 11g   
  • spolupracuje a aktívne učí pre počítačové firmy: Lapis, IVIT v Nitre