INT veya VARCHAR türündeki bir tarih değerini DATE veri türüne dönüştürür. format parametresi belirtilmediğinde girişin varsayılan yyyy-MM-dd biçimiyle eşleşmesi gerekir.
Söz dizimi
Date TO_DATE(INT time)
Date TO_DATE(VARCHAR date)
Date TO_DATE(VARCHAR date, VARCHAR format)
Parametreler
| Parametre | Veri türü | Açıklama |
|---|---|---|
time |
INT | 1 Ocak 1970, 00:00:00 UTC epoch zamanından bu yana geçen gün sayısıdır. Örneğin, 200 değeri 1970-07-20 tarihine karşılık gelir. Not
Bu davranış yalnızca Ververica Runtime (VVR) 8.0.6 ve sonraki sürümler için geçerlidir. 8.0.6'dan önceki VVR sürümlerinde değer örtük olarak STRING türüne dönüştürülür. |
date |
VARCHAR | Bir tarih dizesidir. Varsayılan biçim yyyy-MM-dd şeklindedir. Örneğin, '2017-09-15'. |
format |
VARCHAR | Özel bir tarih biçimi desenidir. Örneğin, 'yyyyMMdd' veya 'MMddyyyy'. |
Kullanım notları
-
time(INT) parametresinin davranışı VVR sürümüne göre değişir:VVR 8.0.6 ve sonraki sürümler:
timeparametresi, epoch zamanından (1 Ocak 1970, 00:00:00 UTC) itibaren geçen gün sayısı olarak yorumlanır.8.0.6'dan önceki VVR sürümleri:
timeparametresi işlenmeden önce örtük olarak STRING türüne dönüştürülür.
VARCHAR girişi kullanılırken
formatparametresi atlanırsa varsayılanyyyy-MM-ddbiçimi uygulanır. Kaynak veriler farklı bir biçim kullanıyorsa (örneğin MySQL DATETIME içinyyyy-MM-dd HH:mm:ss)formatparametresini gerçek biçimle birlikte açıkça belirtmeniz gerekir. Aksi takdirde ayrıştırma işlemi başarısız olur ve1970-01-01gibi hatalı bir sonuç döner.
Örnekler
Aşağıdaki örneklerde T1 tablosu veri kaynağı olarak kullanılmıştır.
T1 Tablosu
| date1 (INT) | date2 (VARCHAR) | date3 (VARCHAR) | date4 (VARCHAR) | date5 (VARCHAR) |
|---|---|---|---|---|
| 200 | 2017-09-15 | 20170915 | 09152017 | 092017 |
INT girişini dönüştürme
Epoch zamanından bu yana geçen gün sayısını temsil eden bir tamsayı gönderin.
SELECT TO_DATE(date1) AS var1
FROM T1;
| var1 (DATE) |
|---|
| 1970-07-20 (VVR 8.0.6 ve sonraki sürümler) |
| 0200-01-01 (8.0.6'dan önceki VVR sürümleri) |
Varsayılan biçimi kullanarak VARCHAR girişini dönüştürme
Giriş zaten yyyy-MM-dd biçimindeyse format parametresini atlayabilirsiniz.
SELECT TO_DATE(date2) AS var2
FROM T1;
| var2 (DATE) |
|---|
| 2017-09-15 |
Özel biçim kullanarak VARCHAR girişini dönüştürme
Giriş dizesinin yapısıyla eşleşen bir format deseni iletin.
SELECT TO_DATE(date3, 'yyyyMMdd') AS var3,
TO_DATE(date4, 'MMddyyyy') AS var4,
TO_DATE(date5, 'MMyyyy') AS var5
FROM T1;
| var3 (DATE) | var4 (DATE) | var5 (DATE) |
|---|---|---|
| 2017-09-15 | 2017-09-15 | 2017-09-01 |
Sonraki adımlar
TO_TIMESTAMP_TZ: Belirtilen saat dilimine göre bir VARCHAR tarih değerini TIMESTAMP türüne dönüştürür.
DATE_ADD: Belirtilen sayıda gün ekleyerek elde edilen tarihi döndürür.