sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man konverterar ett datum-/tidsvärde till en sträng i SQL Server med CONVERT()

När du använder SQL Server kan du konvertera ett datum-/tidsvärde till en sträng genom att använda CONVERT() fungera. Denna funktion låter dig konvertera mellan olika datatyper.

I den här artikeln kommer vi att konvertera mellan olika datum-/tiddatatyper till en varchar eller nvarchar sträng.

En av de bra sakerna med den här funktionen är att den låter dig ange stilen som datumet ska returneras i. Du kan till exempel ange om det ska returneras som mm/dd/åååå , åååå.mm.dd , mån dd, åååå , etc. Du kan också ange om tidskomponenten ska returneras och hur den är utformad.

Syntax

Först, så här går den officiella syntaxen till:

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

Dessa argument definieras enligt följande:

expression
Alla giltiga uttryck.
data_type
Måldatatypen. Detta inkluderar xmlstor och sql_variant . Alias ​​datatyper kan inte användas.
length
Ett valfritt heltal som anger längden på måldatatypen. Standardvärdet är 30 .
style
Ett heltalsuttryck som anger hur CONVERT() funktion kommer att översätta uttryck . För stilvärdet NULL returneras NULL. data_type bestämmer intervallet.

Grundläggande exempel

I det här exemplet deklarerar vi en variabel och tilldelar ett värde från GETDATE() fungera. Vi returnerar sedan värdet, och vi konverterar även det värdet till varchar och returnera det:

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

Resultat:

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

Standardlängden för returdatatypen är 30 , så även om vi bara angav varchar , kommer det att returnera resultatet som en varchar(30) .

I det här exemplet angav vi inte ett tredje argument för att indikera stilen som vi vill att den ska returneras i. Därför har den konverterats med standardformatet för datetime och smalldatetime datatyper, vilket är 0 eller 100 (mer om stilar nedan).

Ange en stil

Du kan använda ett tredje argument för att ange stilen som returvärdet ska ta på:

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

Resultat:

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

I det här exemplet specificerade vi stilen 102 , som är ANSI-standarden för att visa ett datum med en fyrsiffrig årskomponent.

För att ändra detta till ett ANSI-format med ett tvåsiffrigt år, kan vi använda stilen 2 :

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

Resultat:

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

Du kan se fler exempel på CONVERT() från datum/tid till exempel på strängar i SQL Server.


  1. 2 sätt att skapa en databas på en länkad server med T-SQL

  2. Vad är skillnaden mellan MySQL, MySQLi och PDO?

  3. Kontrollera om en användardefinierad typ redan finns i PostgreSQL

  4. Hur man skapar ett Amazon Aurora-kluster