Явное преобразование

Функции для работы с данными в SQL Server

Ana Voicu

Data Engineer

Неявное и явное преобразование

  • НЕЯВНОЕ — выполняется автоматически, «за кулисами»
  • ЯВНОЕ — выполняется с помощью функций CAST() и CONVERT()
    • CAST() и CONVERT() используются для преобразования одного типа данных в другой
Функции для работы с данными в SQL Server

CAST()

CAST(expression AS data_type [(length)])  
SELECT 
     CAST(3.14 AS int) AS DECIMAL_TO_INT,
     CAST('3.14' AS decimal(3,2)) AS STRING_TO_DECIMAL,
     CAST(GETDATE() AS nvarchar(20)) AS DATE_TO_STRING,
     CAST(GETDATE() AS float) AS DATE_TO_FLOAT;
| DECIMAL_TO_INT | STRING_TO_DECIMAL | DATE_TO_STRING     | DATE_TO_FLOAT    |
|----------------|-------------------|--------------------|------------------|
| 3              | 3.14              | Apr 11 2019 1:01PM | 43531.7052687886 |
Функции для работы с данными в SQL Server

CONVERT()

CONVERT(data_type [(length)], expression [,style])  
SELECT 
     CONVERT(int, 3.14) AS DECIMAL_TO_INT,
     CONVERT(decimal(3,2), '3.14') AS STRING_TO_DECIMAL,
     CONVERT(nvarchar(20), GETDATE(), 104) AS DATE_TO_STRING,
     CONVERT(float, GETDATE()) AS DATE_TO_FLOAT;
| DECIMAL_TO_INT | STRING_TO_DECIMAL | DATE_TO_STRING | DATE_TO_FLOAT    |
|----------------|-------------------|----------------|------------------|
| 3              | 3.14              | 11.04.2019     | 43531.7052687886 |
Функции для работы с данными в SQL Server

CAST() vs. CONVERT()

  • CAST() входит в стандарт SQL, а CONVERT() специфична для SQL Server
  • CAST() поддерживается в большинстве СУБД
  • CONVERT() работает немного быстрее в SQL Server
Функции для работы с данными в SQL Server

Давайте потренируемся!

Функции для работы с данными в SQL Server

Preparing Video For Download...