V MS SQL Serveru jsou data pro nováčky komplikovaná, protože při práci s databází musí formát data v tabulce odpovídat vstupnímu datu, aby bylo možné vložit. V různých scénářích se místo data používá DateTime (čas je také spojen s datem). V tomto článku se naučíme, jak převést DateTime na DATE pomocí tří různých funkcí.
algoritmus řazení haldy
- KONVERTOVAT( )
- TRY_CONVERT( )
- Pomocí podřetězce
Cílem dat tohoto článku je převést datum a čas na datum na serveru SQL Server, jako je RRRR-MM-DD HH:MM: SS na RRRR-MM-DD.
Metoda 1: Použití obsazení
Toto je funkce pro přetypování jednoho typu na jiný typ, zde tedy použijeme pro přetypování DateTime k datu.
Syntax:
CAST( dateToConvert AS DATE)>
Příklad 1:
Dotaz:
SELECT CAST(GETDATE() AS DATE) AS CURRENT_DATE>
Výstup:
GETDATE(): Tato funkce vrátí aktuální datum a čas jako (2021-08-27 17:26:36.710)
Příklad 2;
Dotaz:
SELECT CAST('2021-08-27 17:26:36.710' AS DATE) AS CURRENT_DATE_GFG> Výstup:
Metoda 2: Použití převodu
Toto je funkce pro převod jednoho typu na jiný typ, takže zde ji použijeme k převodu DateTime na datum.
Syntax:
CONVERT(DATE, dateToConvert)>
Příklad 1:
Dotaz:
SELECT CONVERT(DATE, GETDATE()) AS CURRENT_DATE_GFG>
Výstup:
Příklad 2:
nahradit z řetězce v Javě
Dotaz:
SELECT CONVERT(DATE, '2021-08-27 17:26:36.710' ) AS CURRENT_DATE_GFG>
Výstup:
Metoda 3: Try_Convert
Toto je funkce pro přetypování jednoho typu na jiný typ, zde tedy použijeme pro Převést datum a čas na datum. pokud je datum neplatné, bude null, zatímco Convert generuje chybu.
Syntax:
TRY_CONVERT(DATE, dateToConvert)>
SELECT TRY_CONVERT(DATE,’2021-08-27 17:26:36.710′) AS CURRENT_DATE_GFG
Příklad 1:
Dotaz:
SELECT TRY_CONVERT(DATE,GETDATE()) AS CURRENT_DATE_GFG>
Výstup:
Příklad 2:
Dotaz:
SELECT TRY_CONVERT(DATE,'2021-08-27 17:26:36.710') AS CURRENT_DATE_GFG>
Výstup:
Metoda 4: Použití podřetězce
Toto je funkce, která se používá k získání krátkého řetězce nebo podřetězce, takže zde pomocí dostaneme podřetězec 0 až 11 index.
Syntax:
SUBSTRING( dateToConvert ,0,11)>
Příklad 1:
Dotaz:
bash délka struny
SELECT SUBSTRING( '2021-08-27 17:26:36.710' ,0,11) AS CURRENT_DATE_GFG>
Výstup:
Příklad 2;
Dotaz:
SELECT SUBSTRING( CONVERT(varchar(17), GETDATE(), 23) ,0,11) AS CURRENT_DATE_GFG>
Výstup: