-
(eksi işareti) işleci
Şunlar için geçerlidir: Databricks SQL
Databricks Runtime
'den expr1
çıkarma işlemini expr2
döndürür.
Söz dizimi
expr1 - expr2
Bağımsız değişkenler
expr1
: Sayısal, TARİh, ZAMAN DAMGASI veya INTERVAL ifadesi.expr2
: Kabul edilen tür türüneexpr
bağlıdır:- Sayısal
expr1
ise sayısalexpr2
ifade olmalıdır - Yıl-ay veya gün-zaman aralığı ise
expr1
,expr2
eşleşen aralık sınıfından olmalıdır. - Aksi takdirde
expr2
DATE veya TIMESTAMP olmalıdır.
- Sayısal
Döndürülenler
Sonuç türü aşağıdaki sırayla belirlenir:
- Sayısalsa
expr1
, sonuç bağımsız değişkenlerin ortak en yüksek türüdür. - Tarih
expr1
ise veexpr2
gün-saat aralığıysa, sonuç bir ZAMAN DAMGASI olur. - Zaman
expr1
DAMGASı ise veexpr2
bir aralıksa, sonuç bir ZAMAN DAMGASI olur. - ve
expr2
DAT'lar iseexpr1
sonuç birINTERVAL DAYS
olur. - ZAMAN DAMGASI ise
expr1
veyaexpr2
ise, sonuç birINTERVAL DAY TO SECOND
olur. - ve
expr2
yıl-ay aralıkları iseexpr1
, sonuç, sonucu temsil etmek için yeterince geniş birimlerden oluşan bir yıl-ay aralığıdır. - ve
expr2
gün-saat aralıkları iseexpr1
, sonuç, sonucu temsil etmek için yeterince geniş birimlerden oluşan bir gün-saat aralığıdır. - Aksi takdirde sonuç türü ile eşleşir
expr1
.
Her iki ifade de aralıksa, aynı sınıfta olmalıdır.
Bir TARİh'ten bir yıl-ay aralığını çıkardığınızda Databricks SQL, sonuçta elde edilen tarihin iyi biçimlendirilmiş olmasını sağlar.
Sonuç, sonuç türünün taşması durumunda Databricks SQL bir ARITHMETIC_OVERFLOW hatası oluşturur.
Taşmaya dönmek NULL
için try_subtract kullanın.
Uyarı
Databricks Runtime'da spark.sql.ansi.enabled isefalse
, taşma bir hataya neden olmaz, ancak sonucu "sarmalar".
Örnekler
> SELECT 2 - 1;
1
> SELECT DATE'2021-03-20' - INTERVAL '2' MONTH
2021-1-20
> SELECT TIMESTAMP'2021-03-20 12:15:29' - INTERVAL '3' SECOND
2021-03-20 12:15:26
> SELECT typeof(INTERVAL '3' DAY - INTERVAL '2' HOUR);
interval day to hour
> SELECT typeof(current_date - (current_date + INTERVAL '1' DAY));
interval day
> SELECT typeof(current_timestamp - (current_date + INTERVAL '1' DAY));
interval day to second
> SELECT DATE'2021-03-31' - INTERVAL '1' MONTH;
2021-02-28
> SELECT -100Y - 100Y;
Error: ARITHMETIC_OVERFLOW
İlgili işlevler
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin