TODATETIMEOFFSET: vaqtni datetimeoffset ob`yektiga qo'shish natijasida hosil bo'lgan datetimeoffset ob’yektini qaytaradi.
SELECT TODATETIMEOFFSET('2017-7-28 01:10:22', '+03:00') -- 2017-07-28 01:10:22.0000000 +03:00
SWITCHOFFSET: vaqtni datetime2 ob`yektiga qo'shish natijasida hosil bo'lgan datetimeoffset ob’yektini qaytaradi.
SELECT SWITCHOFFSET(SYSDATETIMEOFFSET(), '+02:30') -- 2020-09-06 09:14:33.5138471 +02:30
EOMONTH: parametr sifatida uzatilgan sana oyining oxirgi kuni sanasini qaytaradi.
SELECT EOMONTH('2017-02-05') -- 2017-02-28
SELECT EOMONTH('2017-02-05', 3) -- 2017-05-31
Qiymat uzatish shart bo’lmagan ikkinchi parametr sifatida siz sanaga qo'shiladigan oylar sonini ko`rsatishingiz mumkin. Natijada oyning so'nggi kuni yangi sana uchun hisoblab chiqiladi.
DATEFROMPARTS: yil, oy va kun asosida sana obyektini yaratadi.
SELECT DATEFROMPARTS(2017, 7, 28) -- 2017-07-28
ISDATE: berilgan satr sana ekanligini tekshiradi. Agar sana bo'lsa, u 1 ni qaytaradi, aks holda 0 ni qaytaradi.
SELECT ISDATE('2017-07-28') -- 1
SELECT ISDATE('2017-28-07') -- 0
SELECT ISDATE('28-07-2017') -- 0
SELECT ISDATE('SQL') -- 0
Funksiyalardan foydalanish misoli uchun buyurtma sanasini o`z ichiga olgan buyurtmalar jadvalini yarataylik:
CREATE TABLE Orders
(
Id INT IDENTITY PRIMARY KEY,
ProductId INT NOT NULL,
CustomerId INT NOT NULL,
CreatedAt DATE NOT NULL DEFAULT GETDATE(),
ProductCount INT DEFAULT 1,
Price MONEY NOT NULL
);
DEFAULT GETDATE() buyrug'i shuni ko`rsatadiki, agar ma`lumot qo'shilganda sana qiymati uzatilmasa, u holda GETDATE() funksiyasi yordamida olingan joriy sana avtomatik ravishda olinib yoziladi.
Yana bir misol, 16 kun oldin berilgan buyurtmalarni topaylik:
SELECT * FROM Orders
WHERE DATEDIFF(day, CreatedAt, GETDATE()) = 16
13-mavzu. Sonlar bilan ishlash.
T-SQL sonli ma`lumotlar bilan ishlash uchun bir qator funksiyalarni taqdim etadi:
ROUND: sonni yaxlitlaydi. Son birinchi parametr sifatida uzatiladi. Ikkinchi parametr uzunlikni bildiradi. Agar uzunlik musbat son bo'lsa, unda yaxlitlash verguldan keyin qaysi raqamgacha bo’lishini ko`rsatadi. Agar uzunlik manfiy son bo'lsa, u holda sonning oxiridan vergulgacha qaysi raqamgacha yaxlitlanishi kerakligini ko`rsatadi.
SELECT ROUND(1342.345, 2) -- 1342.350
SELECT ROUND(1342.345, -2) -- 1300.000
ISNUMERIC: uzatilgan qiymat son ekanligini aniqlaydi. Funksiya parametr sifatida ifodani oladi. Agar ifoda son bo'lsa, funksiya 1 ni qaytaradi. Agar unday bo'lmasa, 0 ni qaytaradi.
SELECT ISNUMERIC(1342.345) -- 1
SELECT ISNUMERIC('1342.345') -- 1
SELECT ISNUMERIC('SQL') -- 0
SELECT ISNUMERIC('13-04-2020') -- 0
Do'stlaringiz bilan baham: |