Ma'lumot turlarini o'zgartirish
Ushbu qo'llanmada PostgreSQLda bir ma'lumot turidagi qiymatni boshqa ma'lumot turiga o'zgartirish (toifa keltirish / type casting) uchun CAST() funksiyasi va :: operatoridan qanday foydalanishni o'rganasiz.
Toifa keltirish (Type casting) — bu qiymatni bir ma'lumot turidan boshqasiga (masalan, matndan butun songa, satrdan sanaga) aylantirish jarayonidir.
PostgreSQL toifa keltirish uchun ikkita sintaksisni taqdim etadi:
CAST() funksiyasi:
CAST(expression AS target_type)
:::
expression::target_type
Ikkala usul ham bir xil ishlaydi, biroq :: operatori qisqa va qulay bo'lgani uchun PostgreSQLda juda keng qo'llaniladi.
SELECT CAST('100' AS INT) AS num1, '250'::INT AS num2;
Natija:
num1 | num2
------+------
100 | 250
Agar matn ichida raqam bo'lmagan belgilar bo'lsa (masalan '100x'), PostgreSQL sintaktik xatolik beradi:
SELECT '100x'::INT;
-- ERROR: invalid input syntax for type integer: "100x"
SELECT CAST('19.99' AS NUMERIC(10, 2)) AS price1, '99.95'::DOUBLE PRECISION AS price2;
Natija:
price1 | price2
--------+--------
19.99 | 99.95
PostgreSQL 'true', 't', 'yes', 'y', '1' qiymatlarini true ga, 'false', 'f', 'no', 'n', '0' qiymatlarini esa false ga oson o'giradi:
SELECT
'true'::BOOLEAN AS b1,
't'::BOOLEAN AS b2,
'false'::BOOLEAN AS b3,
'0'::BOOLEAN AS b4;
Natija:
b1 | b2 | b3 | b4
----+----+----+----
t | t | f | f
SELECT
CAST('2026-09-22' AS DATE) AS date_val,
'2026-09-22 14:30:00'::TIMESTAMP AS timestamp_val;
Natija:
date_val | timestamp_val
------------+---------------------
2026-09-22 | 2026-09-22 14:30:00
Matnni vaqt oralig'iga (interval) aylantirib, sanalarga qo'shish yoki ayirish mumkin:
SELECT '2026-01-01'::DATE + '1 month 15 days'::INTERVAL AS future_date;
Natija:
future_date
---------------------
2026-02-16 00:00:00
SELECT 12345::TEXT AS text_number;
Ba'zida qiymatni bir turdan ikkinchisiga to'g'ridan-to'g'ri o'girib bo'lmaydi. Masalan, XML yoki murakkab JSON qiymatini oldin TEXT ga, so'ngra INT yoki DECIMAL ga o'girish:
SELECT ('123.45'::TEXT)::NUMERIC;
CAST(val AS type) — SQL standartidagi toifa keltirish funksiyasidir.val::type — PostgreSQLdagi tezkor va ixcham toifa keltirish operatoridir.