sql >> Databáze >  >> RDS >> Sqlserver

Jak převést hodnotu data/času na řetězec v SQL Server pomocí CONVERT()

Když používáte SQL Server, můžete převést hodnotu data/času na řetězec pomocí CONVERT() funkce. Tato funkce umožňuje převádět mezi různými datovými typy.

V tomto článku budeme převádět mezi různými datovými typy data/času na varchar nebo nvarchar řetězec.

Jednou z dobrých věcí na této funkci je to, že vám umožňuje určit styl, ve kterém bude datum vráceno. Můžete například určit, zda bude vráceno jako mm/dd/rrrr , rrrr.mm.dd , Po dd, yyyy atd. Můžete také určit, zda je vrácena složka času a jak je stylizován.

Syntaxe

Nejprve se podívejme, jak funguje oficiální syntaxe:

CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

Tyto argumenty jsou definovány takto:

expression
Jakýkoli platný výraz.
data_type
Cílový datový typ. To zahrnuje xmlvelkýsql_variant . Datové typy aliasů nelze použít.
length
Volitelné celé číslo, které určuje délku cílového datového typu. Výchozí hodnota je 30 .
style
Celočíselný výraz, který určuje způsob CONVERT() funkce přeloží výraz . Pro hodnotu stylu NULL je vrácena hodnota NULL. data_type určuje rozsah.

Základní příklad

V tomto příkladu deklarujeme proměnnou a přiřadíme hodnotu z GETDATE() funkce. Potom vrátíme hodnotu a také ji převedeme na varchar a vraťte to:

DECLARE @date datetime = GETDATE();
SELECT
    @date AS Original,
    CONVERT(varchar, @date) AS Converted;

Výsledek:

+-------------------------+---------------------+
| Original                | Converted           |
|-------------------------+---------------------|
| 2018-06-07 03:08:21.997 | Jun  7 2018  3:08AM |
+-------------------------+---------------------+

Výchozí délka vráceného datového typu je 30 , takže i když jsme zadali pouze varchar , vrátí výsledek jako varchar(30) .

V tomto příkladu jsme neposkytli třetí argument k označení stylu, ve kterém chceme, aby byl vrácen. Proto byl převeden pomocí výchozího stylu pro datetime a smalldatetime datové typy, což je 0 nebo 100 (více o stylech níže).

Určení stylu

Můžete použít třetí argument k určení stylu, který bude mít vrácená hodnota:

DECLARE @date datetime = GETDATE();
SELECT
    @date AS Original,
    CONVERT(varchar(30), @date, 102) AS Converted;

Výsledek:

+-------------------------+-------------+
| Original                | Converted   |
|-------------------------+-------------|
| 2018-06-07 03:42:33.840 | 2018.06.07  |
+-------------------------+-------------+

V tomto příkladu jsme zadali styl 102 , což je standard ANSI pro zobrazení data se čtyřmístnou složkou roku.

Chcete-li to změnit na formát ANSI s dvouciferným rokem, můžeme použít styl 2 :

DECLARE @date datetime = GETDATE();
SELECT
    @date AS Original,
    CONVERT(varchar(30), @date, 2) AS Converted;

Výsledek:

+-------------------------+-------------+
| Original                | Converted   |
|-------------------------+-------------|
| 2018-06-07 03:44:52.433 | 18.06.07    |
+-------------------------+-------------+

Můžete si prohlédnout další příklady na CONVERT() z data/času na příklady řetězců v SQL Server.


  1. Chyba ORA-65048 při změně hesla uživatele v databázi kontejneru (CDB)

  2. Vytvoření dělené tabulky v SQL Server (T-SQL)

  3. drahokam mysql2 zkompilován pro špatnou klientskou knihovnu mysql

  4. Jak dezinfikovat raw SQL v Rails 4