09. Приведение и преобразование типов данных - KattyOG/Database GitHub Wiki
Следующие функции поддерживают приведение и преобразование типов данных:
- CAST и CONVERT
- PARSE
- TRY_CAST
- TRY_CONVERT
- TRY_PARSE
- CAST ( выражение AS целевой_тип_данных [ ( длина ) ] )
- CONVERT (целевой_тип_данных [ (длина ) ] , выражение [ , стиль ] )
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