Cast

Convert

Format

Parse

Str
Конспект Программиста-нефора
Большинство интерпретируемых языков не типизированы и автоматически конвертируют данные из одного формата в другой. Язык Transact-SQL привязан к типам, и вы должны явно преобразовывать форматы там, где это необходимо
Для преобразования данных используются команда (функция) CAST и CONVERT
CAST
В общем, виде CAST выглядит следующим образом:
CAST ( expression AS data_type )Преобразование целочисленных типов к строковым:
SELECT cast(idPeoples as varchar(10)) +
cast(idPosition as varchar(10))
FROM tbPeoplesНеявное преобразование строки к целочисленному типу:
SELECT cast(idPeoples as varchar(10)) + idPosition
FROM tbPeoplesРекомендуется не надеяться на автоматизм сервера и интерпретатора, а указывать необходимые типы явно
Прикол с типом char (забивает пробелами незаполненные символы)
SELECT CAST('Привет ' AS char(10)) + vcFamil
FROM tbPeoplesРезультат: Привет mr.ИВАНОВ
CONVERT
Преобразование целочисленного типа в дробный (приближенный)
SELECT CONVERT(decimal(10,5), idPeoples)
FROM tbPeoplesОкругление до целых
SELECT CONVERT(decimal(10,0), Цена)
FROM ТоварыПреобразование дат
Преобразование строки к дате. 3 параметр - стиль
SELECT convert(datetime, '31.1.2005' ,103)Таблица стилей
| Сокращенный год | Полный год | Формат даты |
|---|---|---|
| - | 0 или 100 | Месяц дд гггг чч:ммAM (или PM) |
| 1 | 101 | мм/дд/гггг |
| 2 | 102 | гг.мм.дд |
| 3 | 103 | дд/мм/гггг |
| 4 | 104 | дд.мм.гггг |
| 5 | 105 | дд-мм-гггг |
| 6 | 106 | дд месяц гггг |
| 7 | 107 | месяц дд гггг |
| 8 | 108 | чч:мм:сс |
| 10 | 110 | мм-дд-гггг |
| 11 | 111 | гг/мм/дд |
| 12 | 112 | Ггммдд |
