CodeGym /Kurslar /SQL SELF /Tarix və vaxt ilə işləmək üçün data tipləri: DATE<...

Tarix və vaxt ilə işləmək üçün data tipləri: DATE, TIME, TIMESTAMP

SQL SELF
Səviyyə , Dərs
Mövcuddur

Neçə dəfə rast gəlmisən ki, hansısa tətbiq tarix və vaxt ilə işləyir? Online sifarişlər, cədvəllər, bazada dəyişikliklərin tarixi — bunların hamısı düzgün vaxt saxlanmasından asılıdır. PostgreSQL bu cür datalarla işləmək üçün güclü alətlər verir və əlbəttə, vaxt olan cədvəllər qorxulu saatlı tablicalar deyil, hadisələri analiz və sıralamaq üçün dəqiq strukturdur.

Tarix və vaxt üçün tiplər imkan verir:

  • Yalnız tarixi DATE, yalnız vaxtı TIME və ya hər ikisini birlikdə TIMESTAMP saxlamağa.
  • Gün əlavə etmək, tarixlər arasındakı fərqi hesablamaq və qeydləri vaxt kriteriyasına görə filtrləmək kimi əməliyyatlar aparmağa.
  • Zaman zonaları ilə işləməyə (amma bu gələcək leksiyaların mövzusudur).

Data tipləri: DATE, TIME, TIMESTAMP

DATE data tipi

DATE tipi yalnız tarixi saxlamaq üçündür, vaxt olmadan. Burada il, ay və gün yazılır. Bu tip faydalıdır, əgər:

  • İstifadəçinin doğum gününü saxlamaq lazımdırsa.
  • Hadisənin tarixi vacibdirsə, amma vaxt önəmli deyilsə.

Format nümunəsi: YYYY-MM-DD (il-ay-gün).

Nümunə:

id name - VARCHAR(100) event_date - DATE
1 SQL Workshop 2025-06-15
2 Python 2025-06-17
3 Java Courses 2025-06-25

TIME data tipi

TIME tipi yalnız vaxtı saxlamaq üçündür. Faydalıdır, əgər:

  • Məsələn, iş gününün başlanğıcı kimi cədvəl saxlamaq lazımdırsa.
  • Vaxt vacibdirsə, amma tarix yoxdursa.

Format nümunəsi: HH:MI:SS (saat:dəqiqə:saniyə).

Nümunə:

id task_name - VARCHAR(100) start_time - TIME
1 Team Meeting 09:00:00
2 Code Review 11:30:00
3 Client Call 15:00:00

TIMESTAMP data tipi

TIMESTAMP — tarix və vaxtın birləşməsidir. Faydalıdır, əgər:

  • Məsələn, istifadəçi sistemə daxil olanda həmin anı qeyd etmək lazımdırsa.
  • Dəyişiklikləri izləmək üçün vaxt qeydiyyatı (loglama) lazımdırsa.

Format nümunəsi: YYYY-MM-DD HH:MI:SS (il-ay-gün saat:dəqiqə:saniyə).

Nümunə:

id action - VARCHAR(100) login_time - TIMESTAMP
1 User Login 2023-10-15 14:30:00
2 File Uploaded 2023-10-15 15:10:00
3 User Logout 2023-10-15 16:45:00

Tarix və vaxt ilə əməliyyatlar

Artıq hansı tiplərin olduğunu bildiyimizə görə, gəlin baxaq necə işləmək olar. PostgreSQL tarix və vaxt ilə işləmək üçün bir çox daxili funksiyalar verir.

Tarix və vaxt hissələrinin çıxarılması

Səndə TIMESTAMP varsa və yalnız ili, ayı, günü və ya saatı çıxarmaq istəyirsənsə, EXTRACT funksiyasından istifadə et.

Nümunə:

SELECT EXTRACT(YEAR FROM TIMESTAMP '2025-06-15 14:30:00') AS il;
-- Nəticə: 2025

SELECT EXTRACT(MONTH FROM TIMESTAMP '2025-06-15 14:30:00') AS ay;
-- Nəticə: 06

SELECT EXTRACT(DAY FROM TIMESTAMP '2025-06-15 14:30:00') AS gun;
-- Nəticə: 15

Zaman intervallarının əlavə və çıxılması

Bir həftə sonra nə olacaq? Yaxud dünən nə idi? Interval əməliyyatlarından istifadə et.

Nümunə:

-- Cari tarixə 7 gün əlavə etmək
SELECT CURRENT_DATE + INTERVAL '7 days' AS gelecek_hefte;

-- 1 ay çıxmaq
SELECT CURRENT_DATE - INTERVAL '1 month' AS kecen_ay;

Tarixlərin müqayisəsi

Hadisənin artıq baş verdiyini necə bilmək olar? Kodda bug tapmaqdan asandır — sadəcə dəyərləri müqayisə et.

Nümunə:

SELECT event_date
FROM events
WHERE event_date < CURRENT_DATE;
-- Keçmişdə olan bütün hadisələri seçirik

Tarix və vaxt ilə işləmək üçün funksiyalar barədə daha ətraflı növbəti leksiyalarda öyrənəcəksən. Hələlik sadəcə yadında saxla ki, belə tiplər var — bu kifayətdir.

Zaman zonası problemləri və vaxt standartı

Bu leksiyada hələ zaman zonalarına dərindən getməyəcəyik, amma vacibdir ki, PostgreSQL TIMESTAMPTZ tipini dəstəkləyir (zaman zonası ilə vaxt qeydiyyatı). Məsələn, 2023-10-15 14:30:00+02 göstərir ki, bu vaxt UTC+2 zonası üçündür.

Bu mövzunu kursda mütləq izah edəcəyik, sadəcə bir az sonra :P

Nümunə

İndi gəlin yeni öyrəndiklərimizi praktikada yoxlayaq. Tələbələrin dərs cədvəlini saxlayan bir cədvəl yaradaq.

id subject_name class_date - DATE start_time - TIME end_time - TIME created_at - TIMESTAMP
1 Mathematics 2023-10-16 09:00:00 10:30:00 2023-10-12 14:00:00
2 Physics 2023-10-16 11:00:00 12:30:00 2023-10-12 14:00:00
3 Chemistry 2023-10-17 09:00:00 10:30:00 2023-10-12 14:01:00
4 Literature 2023-10-17 11:00:00 12:30:00 2023-10-12 14:01:00
5 Computer Science 2023-10-18 10:00:00 11:30:00 2023-10-12 14:02:00

Bir neçə leksiyadan sonra belə cədvəlləri SQL sorğuları ilə bazada yaradacaqsan. Hələlik sadəcə baxıb zövq alırıq :)

Tipik səhvlər

Tarix və vaxt formatı: data əlavə edəndə düzgün format saxlamaq vacibdir: tarix üçün YYYY-MM-DD, vaxt üçün HH:MI:SS. PostgreSQL başa düşməyəcək, əgər tarixi "15/10/2023" kimi yazsan.

Data tipinin uyğun olmaması: DATE tipli sahəyə mətn dəyəri yazmağa çalışsan, səhv çıxacaq.

Zaman intervalları səhvləri: məsələn, fevral ayına 30 gün əlavə etsən, PostgreSQL bunu düzgün hesablayacaq, amma tarix artıq martda olacaq.

Artıq PostgreSQL-də tarix və vaxt üçün data tipləri ilə tanışsan. Real layihələrdə bu, cədvəlləri idarə etməyə, hadisələri log etməyə və ya sistemdə vacib hadisələri izləməyə kömək edir!

1
Sorğu/viktorina
, səviyyə, dərs
Əlçatan deyil
Ədədi data tipləri
Ədədi data tipləri
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION