Tüm Ürünler
Search
Belge Merkezi

MaxCompute:TO_DATE

Son Güncelleme:Oct 04, 2026

Belirtilen biçim desenini kullanarak bir dizgiyi DATE veya DATETIME değerine dönüştürür.

Sözdizimi

DATETIME|DATE TO_DATE(STRING <date>[, STRING <format>])

Parametreler

Parametre Gerekli Tür Açıklama
date Evet STRING Dönüştürülecek dizgi. BIGINT, DOUBLE, DECIMAL ve DATETIME değerleri işlenmeden önce örtük olarak STRING türüne dönüştürülür. ISO 8601 biçimindeki dizgiler de desteklenir.
format Hayır STRING (sabit) Uygulanacak biçim deseni. Tarih genişletme biçimlerini desteklemez. Biçim belirleyicisi olarak tanınmayan karakterler ayrıştırma sırasında yoksayılır. İçinde mutlaka yyyy bulunmalıdır ve yyyy yalnızca bir kez yer alabilir. Bu koşul sağlanmazsa işlev NULL döndürür.

Biçim belirleyicileri

Belirleyici Anlamı Örnek değer
yyyy Dört basamaklı yıl 2025
mm İki basamaklı ay 01
dd İki basamaklı gün 29
hh Saat (24 saatlik dilim) 15
mi İki basamaklı dakika 13
ss İki basamaklı saniye 12
ff3 Üç basamaklı milisaniye 345

Dönüş değeri

Koşul Dönüş türü Biçim
format belirtilmeden çağrılırsa DATE yyyy-mm-dd
format belirtilerek çağrılırsa DATETIME yyyy-mm-dd hh:mi:ss
date veya format NULL ise NULL —

Örnekler

Temel kullanım (biçim yok)

-- Returns 2025-01-29
SELECT TO_DATE('2025-01-29');

Özel biçim dizgileri

Aşağıdaki tüm örneklerde format parametresi kullanılır ve sonuç olarak bir DATETIME değeri döndürülür.

-- Returns 2025-01-27 00:00:00
SELECT TO_DATE('Alibaba2025-01*27', 'Alibabayyyy-mm*dd');

-- Returns 2025-01-12 00:00:00
SELECT TO_DATE('20250112', 'yyyymmdd');

-- Returns 2025-01-28 12:12:00
SELECT TO_DATE('202501281212', 'yyyymmddhhmi');

-- Returns 2025-10-30 15:13:12
SELECT TO_DATE('20251030 15-13-12.345', 'yyyymmdd hh-mi-ss.ff3');

ISO 8601 biçimi

-- Returns 2025-09-24 13:39:34
SELECT TO_DATE('2025-09-24T13:39:34.119Z', 'yyyy-MM-ddThh:mi:ss.ff3Z');

NULL girişler

-- Returns NULL
SELECT TO_DATE(NULL, 'yyyymmdd hh-mi-ss.ff3');

-- Returns NULL
SELECT TO_DATE('20251030 15-13-12.345', NULL);

Geçersiz girişler

-- Returns NULL. '2025112' does not match 'yyyymmdd' (day is missing a digit; use '20250112')
SELECT TO_DATE('2025112', 'yyyymmdd');

-- Returns NULL. Day value '3' is not two digits (use 'Alibaba2025-12*03')
SELECT TO_DATE('Alibaba2025-12*3', 'Alibabayyyy-mm*dd');

-- Returns NULL. '2025-24-01' cannot be converted to a standard date value. It should be '2025-01-24'.
SELECT TO_DATE('2025-24-01', 'yyyy');

Tablo verisi örneği

  1. Örnek tabloyu oluşturun ve veri ekleyin.

    CREATE TABLE IF NOT EXISTS mf_date_fun_t(
        id        INT,
        date1     DATE,
        datetime1 DATETIME,
        timestamp1 TIMESTAMP,
        date2     DATE,
        datetime2 DATETIME,
        timestamp2 TIMESTAMP,
        date3 STRING,
        date4 BIGINT);
    
    INSERT INTO mf_date_fun_t VALUES
    (1,DATE'2021-11-29',DATETIME'2021-11-29 00:01:00',TIMESTAMP'2021-01-11 00:00:00.123456789',DATE'2021-10-29',DATETIME'2021-10-29 00:00:00',TIMESTAMP'2021-10-11 00:00:00.123456789','2021-11-20',123456780),
    (2,DATE'2021-11-28',DATETIME'2021-11-28 00:02:00',TIMESTAMP'2021-02-11 00:00:00.123456789',DATE'2021-10-29',DATETIME'2021-10-29 00:00:00',TIMESTAMP'2021-10-11 00:00:00.123456789','2021-11-21',123456781),
    (3,DATE'2021-11-27',DATETIME'2021-11-27 00:03:00',TIMESTAMP'2021-03-11 00:00:00.123456789',DATE'2021-10-29',DATETIME'2021-10-29 00:00:00',TIMESTAMP'2021-10-11 00:00:00.123456789','2021-11-22',123456782),
    (4,DATE'2021-11-26',DATETIME'2021-11-26 00:04:00',TIMESTAMP'2021-04-11 00:00:00.123456789',DATE'2021-10-29',DATETIME'2021-10-29 00:00:00',TIMESTAMP'2021-10-11 00:00:00.123456789','2021-11-23',123456783),
    (5,DATE'2021-11-25',DATETIME'2021-11-25 00:05:00',TIMESTAMP'2021-05-11 00:00:00.123456789',DATE'2021-10-29',DATETIME'2021-10-29 00:00:00',TIMESTAMP'2021-10-11 00:00:00.123456789','2021-11-24',123456784),
    (6,DATE'2021-11-24',DATETIME'2021-11-24 00:06:00',TIMESTAMP'2021-06-11 00:00:00.123456789',DATE'2021-10-29',DATETIME'2021-10-29 00:00:00',TIMESTAMP'2021-10-11 00:00:00.123456789','2021-11-25',123456785),
    (7,DATE'2021-11-23',DATETIME'2021-11-23 00:07:00',TIMESTAMP'2021-07-11 00:00:00.123456789',DATE'2021-10-29',DATETIME'2021-10-29 00:00:00',TIMESTAMP'2021-10-11 00:00:00.123456789','2021-11-26',123456786),
    (8,DATE'2021-11-22',DATETIME'2021-11-22 00:08:00',TIMESTAMP'2021-08-11 00:00:00.123456789',DATE'2021-10-29',DATETIME'2021-10-29 00:00:00',TIMESTAMP'2021-10-11 00:00:00.123456789','2021-11-27',123456787),
    (9,DATE'2021-11-21',DATETIME'2021-11-21 00:09:00',TIMESTAMP'2021-09-11 00:00:00.123456789',DATE'2021-10-29',DATETIME'2021-10-29 00:00:00',TIMESTAMP'2021-10-11 00:00:00.123456789','2021-11-28',123456788),
    (10,DATE'2021-11-20',DATETIME'2021-11-20 00:10:00',TIMESTAMP'2021-10-11 00:00:00.123456789',DATE'2021-10-29',DATETIME'2021-10-29 00:00:00',TIMESTAMP'2021-10-11 00:00:00.123456789','2021-11-29',123456789);
  2. STRING sütunu date3 değerini DATETIME türüne dönüştürün.

    SELECT date3, TO_DATE(date3, 'yyyy-mm-dd') AS date3_to_date FROM mf_date_fun_t;

    Sonuç:

    +------------+---------------------+
    | date3      | date3_to_date       |
    +------------+---------------------+
    | 2021-11-20 | 2021-11-20 00:00:00 |
    | 2021-11-21 | 2021-11-21 00:00:00 |
    | 2021-11-22 | 2021-11-22 00:00:00 |
    | 2021-11-23 | 2021-11-23 00:00:00 |
    | 2021-11-24 | 2021-11-24 00:00:00 |
    | 2021-11-25 | 2021-11-25 00:00:00 |
    | 2021-11-26 | 2021-11-26 00:00:00 |
    | 2021-11-27 | 2021-11-27 00:00:00 |
    | 2021-11-28 | 2021-11-28 00:00:00 |
    | 2021-11-29 | 2021-11-29 00:00:00 |
    +------------+---------------------+

İlgili işlevler

TO_DATE, tarih işlevleri paketinin bir parçasıdır. Tarih hesaplama ve dönüştürme işlevleri hakkında daha fazla bilgi için bkz. Date functions.