try_subtract
وظيفه
ينطبق على: Databricks SQL Databricks Runtime 10.4 LTS وما فوق
إرجاع طرح من expr2
expr1
أو NULL
عند تجاوز السعة.
بناء الجملة
try_subtract ( expr1 , expr2 )
الوسيطات
expr1
: تعبير رقمي أو تاريخ أو طابع زمني أو فاصل زمني.expr2
: إذا كانexpr1
عبارة عنexpr2
رقم يجب أن يكون تعبيرا رقميا أو فاصلا زمنيا بخلاف ذلك.
المرتجعات
- إذا كان
expr1
رقميا، فإن النوع الأقصى الشائع للوسيطات. - إذا كان
expr1
عبارة عن DATE وكانexpr2
عبارة عن فاصل زمني لليوم، تكون النتيجة TIMESTAMP. - إذا كانت
expr1
وexpr2
عبارة عن فترات زمنية لمدة شهر، تكون النتيجة عبارة عن فاصل زمني لمدة شهر من وحدات واسعة بما يكفي لتمثيل النتيجة. - إذا كانت
expr1
وexpr2
عبارة عن فواصل زمنية لليوم، تكون النتيجة فاصلا زمنيا لليوم بوحدات عريضة بما يكفي لتمثيل النتيجة. - وإلا، فإن نوع النتيجة يطابق
expr1
.
إذا كان كلا التعبيرين عبارة عن فاصل زمني، فيجب أن يكونا من نفس الفئة.
إذا تجاوزت النتيجة نوع النتيجة Databricks SQL بإرجاع NULL.
عند طرح فاصل زمني لمدة شهر من DATE Databricks SQL سيضمن أن التاريخ الناتج قد تم تكوينه بشكل جيد.
الأمثلة
> SELECT try_subtract(1, 2);
-1
> SELECT try_subtract(DATE'2021-03-20', INTERVAL '2' MONTH);
2021-1-20
> SELECT try_subtract(TIMESTAMP'2021-03-20 12:15:29', INTERVAL '3' SECOND);
2021-03-20 12:15:26
> SELECT typeof(try_subtract(INTERVAL '3' DAY, INTERVAL '2' HOUR));
interval day to hour
> SELECT try_subtract(DATE'2021-03-31', INTERVAL '1' MONTH);
2021-02-28
> SELECT try_subtract(-128Y, 1Y);
NULL