Типистандарт SQL

CAST

Перетворює значення з одного типу в інший: текст на число, текст на дату, число на текст.

Синтаксис

CAST(<значення> AS <тип>)
<значення>::<тип>

Запис ::<тип> робить те саме й коротший, але є лише в PostgreSQL. Потрібно, коли дані прийшли текстом або коли тип заважає обчисленню.

Дані для прикладів

orders

idcreated_atamount
12026-07-03 10:15:00120.50
22026-07-28 18:40:0080.25
32026-08-09 09:05:00199.99
42026-08-21 14:30:0045.00
52026-09-02 11:00:0064.75

Ці таблиці вже створено в пісочниці — приклади нижче працюють із ними. Хочеш повторити у своїй базі — скопіюй SQL.

Текст — у число й дату
SELECT CAST('42' AS integer) + 1 AS number,
CAST('2026-09-13' AS date) AS day;
numberday
432026-09-13
Те саме через ::
SELECT '42'::integer + 1 AS number,
'2026-09-13'::date + 7 AS week_later;
numberweek_later
432026-09-20

Дату можна перетворити й одразу додати до неї дні.

Суми замовлень цілими числами
SELECT id, amount,
CAST(amount AS integer) AS whole
FROM orders;
idamountwhole
1120.50121
280.2580
3199.99200
445.0045
564.7565

120.50 стало 121: перетворення на integer округлює, а не відкидає дробову частину.

Зверни увагу

Якщо текст не схожий на потрібний тип, запит упаде: CAST('abc' AS integer) — invalid input syntax for type integer. Один «кривий» рядок у таблиці ламає весь запит.

Перетворення дробового числа на integer округлює: CAST(2.5 AS integer) дає 3. Просто відкинути дробову частину — TRUNC.

:: — лише PostgreSQL. Якщо запит має працювати й в інших СКБД, пиши CAST(… AS …).

Схожі функції

Детально в курсі