09. Приведение и преобразование типов данных - KattyOG/Database GitHub Wiki

Следующие функции поддерживают приведение и преобразование типов данных:

  • CAST и CONVERT
  • PARSE
  • TRY_CAST
  • TRY_CONVERT
  • TRY_PARSE

Использование функций CAST и CONVERT для преобразования выражений одного типа в другой:

  • CAST ( выражение AS целевой_тип_данных [ ( длина ) ] )
  • CONVERT (целевой_тип_данных [ (длина ) ] , выражение [ , стиль ] )

Примеры (ВАЖНО, ЭТО НЕ POSTGRES, ТАМ ПО-ДРУГОМУ МОЖЕТ РАБОТАТЬ)


SELECT PName, Price
FROM P
WHERE CAST(Price AS int) LIKE '2%';

--Можно и так

SELECT PName, Price
FROM P
WHERE CAST(CAST(Price AS int) AS varchar(10)) LIKE '2%';

SELECT ' Цена детали '+Pname+' по прейскуранту составляет '+CAST(Price AS varchar(12)) AS [Цена]
FROM P
WHERE Price BETWEEN 10.00 AND 20.00;

--Показать текущую дату и время, используя функцию CAST для изменения текущей даты и времени в символьный тип данных и затем
--использовать CONVERT для отображения даты и времени в формате ISO 8901.

SELECT
GETDATE() AS [До преобразования],
CAST(GETDATE() AS nvarchar(30)) AS [Используя Cast],
CONVERT(nvarchar(30), GETDATE(), 126) AS [Используя Convert в ISO8601] ;
--Результат:
--2010-11-24 00:33:45.403 Nov 24 2010 12:33AM 2010-11-24T00:33:45.403

--Частичная противоположность предыдущему примеру. Отобразить дату и время в виде символьных данных,
--использует функцию CAST для изменения символьных данных в тип данных datetime, а затем
--использует CONVERT для изменения символьных данных в тип данных datetime.
SELECT
'2006-04-25T15:50:59.997' AS UnconvertedText,
CAST('2006-04-25T15:50:59.997' AS datetime) AS UsingCast,
CONVERT(datetime, '2006-04-25T15:50:59.997', 126) AS UsingConvertFrom_ISO8601 ;
--Результат:
--2006-04-25T15:50:59.997 2006-04-25 15:50:59.997 2006-04-25 15:50:59.9970
⚠️ **GitHub.com Fallback** ⚠️