Sök…


PRÖV PARSE

SQL Server 2012

Den konverterar strängdatatyp till måldatatyp (Datum eller numerisk).

Till exempel är källdata strängtyp och vi måste dölja till datumtyp. Om konverteringsförsöket misslyckas returnerar det NULL-värde.

Syntax: TRY_PARSE (string_value AS data_type [USING culture])

String_value - Det här argumentet är källvärdet av typen NVARCHAR (4000).
Data_type - Detta argument är måldatatyp antingen datum eller numeriskt.
Kultur - Det är ett valfritt argument som hjälper till att konvertera värdet till i kulturformat. Anta att du vill visa datumet på franska, då måste du skicka kulturtyp som 'Fr-FR'. Om du inte skickar något giltigt kulturnamn kommer PARSE att ta upp ett fel.

DECLARE @fakeDate AS varchar(10);  
DECLARE @realDate AS VARCHAR(10);  
SET @fakeDate = 'iamnotadate'; 
SET @realDate = '13/09/2015';   

SELECT TRY_PARSE(@fakeDate AS DATE); --NULL  as the parsing fails

SELECT TRY_PARSE(@realDate AS DATE); -- NULL due to type mismatch

SELECT TRY_PARSE(@realDate AS DATE USING 'Fr-FR'); -- 2015-09-13 

PRÖV KONVERT

SQL Server 2012

Den konverterar värdet till specificerad datatyp och om konverteringen misslyckas returnerar den NULL. Till exempel källvärdet i strängformat och vi behöver datum / heltalformat. Då kommer detta att hjälpa oss att uppnå detsamma.

Syntax: TRY_CONVERT (data_type [(längd)], uttryck [, stil])

TRY_CONVERT () returnerar ett värde som kastas till den angivna datatypen om castet lyckas; annars returnerar noll.


Data_type - Datatypen som konverteras till. Här är längd en valfri parameter som hjälper till att få resultat i specificerad längd.
Uttryck - Värdet som ska konverteras
Style - Det är en valfri parameter som bestämmer formatering. Anta att du vill ha datumformat som "18 maj 2013", då behöver du passform som 111.

DECLARE @sampletext AS VARCHAR(10);  
SET @sampletext = '123456';  
DECLARE @ realDate AS VARCHAR(10);  
SET @realDate = '13/09/2015’;  
SELECT TRY_CONVERT(INT, @sampletext); -- 123456  
SELECT TRY_CONVERT(DATETIME, @sampletext); -- NULL  
SELECT TRY_CONVERT(DATETIME, @realDate, 111); -- Sep, 13 2015  

PRÖV KAST

SQL Server 2012

Den konverterar värdet till specificerad datatyp och om konverteringen misslyckas returnerar den NULL. Till exempel källvärde i strängformat och vi behöver det i dubbel- / heltalformat. Då kommer detta att hjälpa oss att uppnå det.

Syntax: TRY_CAST (uttryck AS data_type [(längd)]

TRY_CAST () returnerar ett värde som kastas till den angivna datatypen om castet lyckas; annars returnerar noll.

Uttryck - Källvärdet som kommer att gå till cast.
Data_type - Måldatatypen som källvärdet kommer att avge.
Längd - Det är en valfri parameter som anger längden på måldatatypen.

DECLARE @sampletext AS VARCHAR(10);  
SET @sampletext = '123456';  
  
SELECT TRY_CAST(@sampletext AS INT); -- 123456  
SELECT TRY_CAST(@sampletext AS DATE); -- NULL  

Kasta

Cast () -funktionen används för att konvertera en datatypvariabel eller data från en datatyp till en annan datatyp.

Syntax

CAST ([Expression] AS Datatype)

Datatypen du kastar ett uttryck till är måltypen. Datatypen för uttrycket som du skickar från är källtypen.

DECLARE @A varchar(2)    
DECLARE @B varchar(2)

set @A='25a'    
set @B='15'

Select CAST(@A as int) + CAST(@B as int)  as Result 
--'25a' is casted to 25 (string to int)
--'15' is casted to 15 (string to int)

--Result 
 --40

DECLARE @C varchar(2)  = 'a'    

select CAST(@C as int) as Result    
--Result
 --Conversion failed when converting the varchar value 'a' to data type int.

Kaster fel om det misslyckades

Konvertera

När du konverterar uttryck från en typ till en annan kommer det i många fall att finnas ett behov inom en lagrad procedur eller annan rutin för att konvertera data från en datattyp till en varchar-typ. Konverteringsfunktionen används för sådana saker. CONVERT () -funktionen kan användas för att visa datum / tid-data i olika format. Syntax

CONVERT (data_type (längd), uttryck, stil)

Style - formatvärden för konvertering av datetime eller smalldatetime till karaktärsdata. Lägg till 100 till ett stilvärde för att få ett fyra-platsår som inkluderar århundradet (åååå).

select convert(varchar(20),GETDATE(),108) 

13:27:16


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow