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

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

 CONVERT() функцията ви позволява да конвертирате между типове данни. Той е подобен на CAST() функция, но едно от предимствата на CONVERT() е, че когато конвертирате от тип данни за дата/час в низ, можете да добавите незадължителен аргумент, който указва стила, в който искате да бъде върнатата стойност. Например, можете да я върнете като dd .мм.гггг , гггг-мм-дд , дд пн гггг и др.

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

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

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

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 |
+-------------------------+---------------------+

Въпреки това ще получите различен резултат, ако оригиналният тип данни не е datetime или smalldatetime .

Ако трябва да бъде върнат в различен стил, ще трябва да посочите трети аргумент.

Стилове с две цифри години

По-долу са дадени примери за различните стойности, които можете да използвате, за да посочите стила с помощта на двуцифрен компонент на годината.

Стилове от 1 до 6

DECLARE @date datetime2 = '2018-06-07';
SELECT
    CONVERT(nvarchar(30), @date, 1) AS '1',
    CONVERT(nvarchar(30), @date, 2) AS '2',
    CONVERT(nvarchar(30), @date, 3) AS '3',
    CONVERT(nvarchar(30), @date, 4) AS '4',
    CONVERT(nvarchar(30), @date, 5) AS '5',
    CONVERT(nvarchar(30), @date, 6) AS '6';

Резултат:

+----------+----------+----------+----------+----------+-----------+
| 1        | 2        | 3        | 4        | 5        | 6         |
|----------+----------+----------+----------+----------+-----------|
| 06/07/18 | 18.06.07 | 07/06/18 | 07.06.18 | 07-06-18 | 07 Jun 18 |
+----------+----------+----------+----------+----------+-----------+

Стилове от 7 до 6

DECLARE @date datetime2 = '2018-06-07';
SELECT
    CONVERT(nvarchar(30), @date, 7) AS '7',
    CONVERT(nvarchar(30), @date, 8) AS '8',
    CONVERT(nvarchar(30), @date, 10) AS '10',
    CONVERT(nvarchar(30), @date, 11) AS '11',
    CONVERT(nvarchar(30), @date, 12) AS '12',
    CONVERT(nvarchar(30), @date, 14) AS '14';

Резултат:

+------------+----------+----------+----------+--------+------------------+
| 7          | 8        | 10       | 11       | 12     | 14               |
|------------+----------+----------+----------+--------+------------------|
| Jun 07, 18 | 00:00:00 | 06-07-18 | 18/06/07 | 180607 | 00:00:00.0000000 |
+------------+----------+----------+----------+--------+------------------+

Стилове с четирицифрени години

По-долу са дадени примери за различните стойности, които можете да използвате, за да посочите стила с помощта на четирицифрен компонент на годината.

Стилове от 100 до 103

DECLARE @date datetime2 = '2018-06-07 02:35:52.8537677';
SELECT
    CONVERT(nvarchar(30), @date, 100) AS '100',
    CONVERT(nvarchar(30), @date, 101) AS '101',
    CONVERT(nvarchar(30), @date, 102) AS '102',
    CONVERT(nvarchar(30), @date, 103) AS '103';

Резултат:

+---------------------+------------+------------+------------+
| 100                 | 101        | 102        | 103        |
|---------------------+------------+------------+------------|
| Jun  7 2018  2:35AM | 06/07/2018 | 2018.06.07 | 07/06/2018 |
+---------------------+------------+------------+------------+

Стилове от 104 до 108

DECLARE @date datetime2 = '2018-06-07 02:35:52.8537677';
SELECT
    CONVERT(nvarchar(30), @date, 104) AS '104',
    CONVERT(nvarchar(30), @date, 105) AS '105',
    CONVERT(nvarchar(30), @date, 106) AS '106',
    CONVERT(nvarchar(30), @date, 107) AS '107',
    CONVERT(nvarchar(30), @date, 108) AS '108';

Резултат:

+------------+------------+-------------+--------------+----------+
| 104        | 105        | 106         | 107          | 108      |
|------------+------------+-------------+--------------+----------|
| 07.06.2018 | 07-06-2018 | 07 Jun 2018 | Jun 07, 2018 | 02:35:52 |
+------------+------------+-------------+--------------+----------+

Стилове от 109 до 112

DECLARE @date datetime2 = '2018-06-07 02:35:52.8537677';
SELECT
    CONVERT(nvarchar(30), @date, 109) AS '109',
    CONVERT(nvarchar(30), @date, 110) AS '110',
    CONVERT(nvarchar(30), @date, 111) AS '111',
    CONVERT(nvarchar(30), @date, 112) AS '112';

Резултат:

+--------------------------------+------------+------------+----------+
| 109                            | 110        | 111        | 112      |
|--------------------------------+------------+------------+----------|
| Jun  7 2018  2:35:52.8537677AM | 06-07-2018 | 2018/06/07 | 20180607 |
+--------------------------------+------------+------------+----------+

Стилове от 113 до 114

DECLARE @date datetime2 = '2018-06-07 02:35:52.8537677';
SELECT
    CONVERT(nvarchar(30), @date, 113) AS '113',
    CONVERT(nvarchar(30), @date, 114) AS '114';

Резултат:

+------------------------------+------------------+
| 113                          | 114              |
|------------------------------+------------------|
| 07 Jun 2018 02:35:52.8537677 | 02:35:52.8537677 |
+------------------------------+------------------+

Стилове от 120 до 127

DECLARE @date datetime2 = '2018-06-07';
SELECT    
    CONVERT(nvarchar(30), @date, 120) AS '120',
    CONVERT(nvarchar(30), @date, 126) AS '126',
    CONVERT(nvarchar(30), @date, 127) AS '127';

Резултат:

+---------------------+---------------------+---------------------+
| 120                 | 126                 | 127                 |
|---------------------+---------------------+---------------------|
| 2018-06-07 00:00:00 | 2018-06-07T00:00:00 | 2018-06-07T00:00:00 |
+---------------------+---------------------+---------------------+

Стил 130

DECLARE @date datetime2 = '2018-06-07';
SELECT    
    CONVERT(nvarchar(30), @date, 130) AS '130';

Резултат:

+--------------------------------+
| 130                            |
|--------------------------------|
| 24 رمضان 1439 12:00:00.0000000 |
+--------------------------------+

Microsoft предупреждава, че тази стойност не се изобразява правилно при инсталиране по подразбиране на SSMS в САЩ.

Стил 131

DECLARE @date datetime2 = '2018-06-07';
SELECT    
    CONVERT(nvarchar(30), @date, 131) AS '131';

Резултат:

+-------------------------------+
| 131                           |
|-------------------------------|
| 24/09/1439 12:00:00.0000000AM |
+-------------------------------+

Можете да прочетете повече за наличните стилове за дата/час на уебсайта на Microsoft.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Автоматично събиране на данни за промени в схемата на базата данни в MS SQL Server

  2. Преименувайте SA акаунта в SQL Server (пример за T-SQL)

  3. Проверете състоянието на всички съобщения от базата данни в SQL Server (T-SQL)

  4. Адаптивният сървър не е наличен или не съществува грешка при свързване към SQL Server от PHP

  5. Избягвайте тези 4 често срещани грешки в DBA