Datetime verilerini değiştirme

Snowflake'te Veri Türleri ve Fonksiyonlar

Jake Roach

Field Data Engineer

Timestamp bileşenlerini çıkarma

Snowflake, bir timestamp’tan bileşenler çıkarmak için işlevler sağlar

SELECT
    <fields>,

    DAY(<1>)  -- Daha birçok seçenek var!

FROM ...;

<1>: DATE, TIME veya TIMESTAMP

  • DAY
  • MONTH
  • YEAR
  • HOUR
  • MINUTE
  • SECOND
  • DAYNAME
  • MONTHNAME
Snowflake'te Veri Türleri ve Fonksiyonlar

Timestamp ayrıştırma

SELECT
    exam_completed_time,

    YEAR(exam_completed_time) AS y,
    MONTHNAME(exam_completed_time) AS mn,
    DAYNAME(exam_completed_time) AS dn,
    DAY(exam_completed_time) AS d,

    HOUR(exam_completed_time) AS h,
    MINUTE(exam_completed_time) AS m,
    SECOND(exam_completed_time) AS s

FROM STUDENTS.grades;
Snowflake'te Veri Türleri ve Fonksiyonlar

Timestamp ayrıştırma

     exam_completed_time  |    y   |   mn  |   dn  |   d  |   h  |   m  |   s 
    --------------------- | ------ | ----- | ----- | ---- | ---- | ---- | ----

     2025-06-25 11:17:02  |  2025  |  Jun  |  Wed  |  25  |  11  |   6  |   2

     2025-06-26 08:49:49  |  2025  |  Jun  |  Thu  |  26  |   8  |  49  |  49
     2025-06-25 09:56:07  |  2025  |  Jun  |  Wed  |  25  |   9  |  56  |   7
     2025-06-24 22:14:27  |  2025  |  Jun  |  Tue  |  24  |  22  |  14  |  27
     2025-06-26 13:36:55  |  2025  |  Jun  |  Thu  |  26  |  13  |  36  |  55
     2025-06-25 16:23:09  |  2025  |  Jun  |  Wed  |  25  |  16  |  23  |   9

                                        ...
Snowflake'te Veri Türleri ve Fonksiyonlar

DATEDIFF

DATEDIFF, iki tarih veya timestamp arasındaki aralığı bulur

SELECT
    <fields>,


DATEDIFF(<1>, <2>, <3>) -- birim, ilk timestamp, ikinci timestamp
FROM ...;

<1>: Sonucun olacağı zaman birimi; örn. MINUTE, HOUR, DAY, YEAR, WEEK vb.

<2>: Başlangıç timestamp’i

<3>: Bitiş timestamp’i

Snowflake'te Veri Türleri ve Fonksiyonlar

DATEDIFF kullanma

İlk TIMESTAMP:   2025-05-12 08:24:08
İkinci TIMESTAMP: 2025-11-13 03:05:46
SELECT 
    DATEDIFF(
        DAY, 
        TO_DATE('2025-05-12 08:24:08'), 
        TO_DATE('2025-11-13 03:05:46')
    )
                                   185 (GÜN)
Snowflake'te Veri Türleri ve Fonksiyonlar

DATEADD

SELECT

    -- birim, birim sayısı, timestamp
    DATEADD(
        DAY, 
        185, 
        TO_DATE('2025-05-12 08:24:08')
    )

FROM ...;
2025-05-12 08:24:08 + 185 DAYs

         = 2025-11-13 08:24:08

Zaman aralıklarını DATE, TIME veya TIMESTAMP değerlerine DATEADD ile ekleyin

$$

<1>: Eklenecek zaman birimi; örn. MINUTE, HOUR, DAY, YEAR, WEEK vb.

<2>: Zamana eklenecek "birim" sayısı

<3>: Üzerine eklenecek timestamp

Snowflake'te Veri Türleri ve Fonksiyonlar

Bir DATE’i değiştirin

SELECT
    s_id,
    exam_completed_time AS completed_time,
    exam_due_time AS due_time,

    -- Tamamlama ile son teslim tarihi arasındaki farkı bulun
    DATEDIFF(HOUR, exam_completed_time, exam_due_time) AS hours_early,

    -- Öğretmenin notlandırmayı tamamlaması gereken tarihi belirleyin
    DATEADD(WEEK, 1, exam_completed_time) AS grading_due

FROM STUDENTS.grades;
Snowflake'te Veri Türleri ve Fonksiyonlar

Bir DATE’i değiştirin


  s_id  |     completed_time    |        due_time       |  hours_early  |      grading_due
 ------ | --------------------- | --------------------- | ------------- | ---------------------

   919  |  2025-06-25 11:17:02  |  2025-06-26 10:00:00  |       22      |  2025-07-02 11:17:02

   871  |  2025-06-26 08:49:49  |  2025-06-26 10:00:00  |        1      |  2025-07-03 08:49:49
   111  |  2025-06-25 09:56:07  |  2025-06-26 10:00:00  |       24      |  2025-07-02 09:56:07
   465  |  2025-06-24 22:14:27  |  2025-06-26 10:00:00  |       35      |  2025-07-01 22:14:27
   248  |  2025-06-26 13:36:55  |  2025-06-26 10:00:00  |       -3      |  2025-07-23 13:36:55
   767  |  2025-06-25 16:23:09  |  2025-06-26 10:00:00  |       17      |  2025-07-02 16:23:09

                                           ...

Snowflake'te Veri Türleri ve Fonksiyonlar

Hadi pratik yapalım!

Snowflake'te Veri Türleri ve Fonksiyonlar

Preparing Video For Download...