SQL-fråga för att konvertera datum och tid till datum
I MS SQL Server är datum komplicerade för nybörjare, eftersom när man arbetar med databasen måste formatet på datumet i tabellen matchas med inmatningsdatumet för att kunna infogas. I olika scenarier istället för datum används DateTime (tid är också inblandat med datum). I den här artikeln kommer vi att lära oss hur du konverterar en DateTime till ett DATUM genom att använda de tre olika funktionerna.
- KONVERTERA( )
- TRY_CONVERT( )
- Använda delsträng
Syftet med denna artikeldata är att konvertera DateTime till Date i SQL Server som ÅÅÅÅ-MM-DD HH:MM: SS till ÅÅÅÅ-MM-DD.
Metod 1: Använd gjuten
Detta är en funktion för att casta en typ till en annan typ, så här kommer vi att använda för cast DateTime till datum.
Syntax:
CAST( dateToConvert AS DATE)
Exempel 1:
Fråga:
SELECT CAST(GETDATE() AS DATE) AS CURRENT_DATE
Produktion:
GETDATE(): Denna funktion returnerar aktuellt datum och tid som (2021-08-27 17:26:36.710)
Exempel 2;
Fråga:
SELECT CAST('2021-08-27 17:26:36.710' AS DATE) AS CURRENT_DATE_GFG Produktion:
Metod 2: Använda Convert
Detta är en funktion för att konvertera en typ till en annan typ, så här kommer vi att använda den för att konvertera DateTime till datum.
Syntax:
CONVERT(DATE, dateToConvert)
Exempel 1:
Fråga:
SELECT CONVERT(DATE, GETDATE()) AS CURRENT_DATE_GFG
Produktion:
Exempel 2:
Fråga:
SELECT CONVERT(DATE, '2021-08-27 17:26:36.710' ) AS CURRENT_DATE_GFG
Produktion:
Metod 3: Try_Convert
Detta är en funktion för att casta en typ till en annan typ, så här kommer vi att använda för Konvertera DateTime till datum. om datumet är ogiltigt kommer det att vara null medan Convert genererar ett fel.
Syntax:
TRY_CONVERT(DATE, dateToConvert)
VÄLJ TRY_CONVERT(DATE,’2021-08-27 17:26:36.710′) SOM CURRENT_DATE_GFG
Exempel 1:
Fråga:
SELECT TRY_CONVERT(DATE,GETDATE()) AS CURRENT_DATE_GFG
Produktion:
Exempel 2:
Fråga:
SELECT TRY_CONVERT(DATE,'2021-08-27 17:26:36.710') AS CURRENT_DATE_GFG
Produktion:
Metod 4: Använda delsträng
Detta är en funktion att använda för att få en kort sträng eller delsträng, så här använder vi delsträngen 0 till 11 index.
Syntax:
SUBSTRING( dateToConvert ,0,11)
Exempel 1:
Fråga:
SELECT SUBSTRING( '2021-08-27 17:26:36.710' ,0,11) AS CURRENT_DATE_GFG
Produktion:
Exempel 2;
Fråga:
SELECT SUBSTRING( CONVERT(varchar(17), GETDATE(), 23) ,0,11) AS CURRENT_DATE_GFG
Produktion: