Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да конвертирате стойност на дата/час в низ в SQL Server с помощта на CONVERT()

Когато използвате SQL Server, можете да конвертирате стойност за дата/час в низ, като използвате CONVERT() функция. Тази функция ви позволява да конвертирате между различни типове данни.

В тази статия ще конвертираме между различни типове данни за дата/час в varchar или nvarchar низ.

Едно от добрите неща за тази функция е, че ви позволява да посочите стила, в който датата ще бъде върната. Например можете да посочите дали да се връща като mm/dd/yyyy , гггг.мм.дд , пн дд, гггг , и т.н. Можете също да посочите дали компонентът за време се връща и как е стилизиран.

Синтаксис

Първо, ето как върви официалният синтаксис:

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

Тези аргументи се дефинират, както следва:

expression
Всякакъв валиден израз.
data_type
Целевият тип данни. Това включва xmlголям и sql_variant . Типовете данни за псевдоним не могат да се използват.
length
Незадължително цяло число, което определя дължината на целевия тип данни. Стойността по подразбиране е 30 .
style
Цялочислен израз, който указва как CONVERT() функцията ще преведе израз . За стойност на стил NULL се връща NULL. тип_данни определя обхвата.

Основен пример

В този пример ние декларираме променлива и присвояваме стойност от GETDATE() функция. След това връщаме стойността и също така преобразуваме тази стойност в varchar и върнете това:

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

Резултат:

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

Дължината по подразбиране на връщания тип данни е 30 , така че въпреки че посочихме само varchar , той ще върне резултата като varchar(30) .

В този пример не предоставихме трети аргумент, за да посочим стила, в който искаме да бъде върнат. Следователно той е преобразуван с помощта на стила по подразбиране за datetime и smalldatetime типове данни, което е 0 или 100 (повече за стиловете по-долу).

Указване на стил

Можете да използвате трети аргумент, за да посочите стила, който връщаната стойност ще приеме:

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

Резултат:

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

В този пример посочихме стил 102 , което е стандартът ANSI за показване на дата с четирицифрен компонент на годината.

За да променим това във формат ANSI с двуцифрена година, можем да използваме стил 2 :

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

Резултат:

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

Можете да видите още примери за CONVERT() от дата/час до примери за низове в SQL Server.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server Database Change Listener C#

  2. OPENROWSET не приема променливи за своите аргументи (SQL Server)

  3. Какъв е най-добрият начин да изберете минималната стойност от няколко колони?

  4. Как да извлека десетични знаци при закръгляване на средна стойност в SQL

  5. Как да заредя XML файл в база данни с помощта на SSIS пакет?