- - - - - -(負號)算子

適用於:檢查標記是的磚的SQL檢查標記是的磚運行時

返回的減法expr2expr1

語法

expr1- - - - - -expr2

參數

  • expr1:數字、日期、時間戳或間隔表達式。

  • expr2:公認的類型取決於類型的expr:

    • 如果expr1是一個數字expr2必須是一個數字表達

    • 如果expr1是一個year-month或白天間隔,expr2必須匹配類的間隔。

    • 否則expr2必須是一個日期或時間戳。

返回

結果類型決定按照以下順序:

  • 如果expr1是一個數字,結果是常見的最大的類型參數。

  • 如果expr1是一個日期和expr2是一個白天間隔結果是一個時間戳。

  • 如果expr1是一個時間戳,expr2是一個間隔結果是一個時間戳。

  • 如果expr1expr2結果是一個日期嗎時間間隔

  • 如果expr1expr2時間戳是結果是嗎時間間隔一天第二個

  • 如果expr1expr2year-month間隔的結果是一個year-month間隔足夠寬的單位來表示結果。

  • 如果expr1expr2結果是一個白天是白天間隔時間間隔足夠寬的單位來表示結果。

  • 否則,結果類型匹配expr1

如果兩個表達式是間隔必須同一個類的。

減去year-month間隔日期時,磚SQL確保生成的日期是格式良好的。

如果結果溢出的結果類型,提出了一個磚SQLARITHMETIC_OVERFLOW錯誤。

使用try_subtract返回在溢出。

警告

在磚運行時,如果spark.sql.ansi.enabled,一個溢出不會引起錯誤而是“包裝”的結果。

例子

>選擇2- - - - - -1;1>選擇日期“2021-03-20”- - - - - -時間間隔' 2 '2021年- - - - - -1- - - - - -20.>選擇時間戳“2021-03-20 12:15:29”- - - - - -時間間隔“3”第二個2021年- - - - - -03- - - - - -20.12:15:26>選擇typeof(時間間隔“3”一天- - - - - -時間間隔' 2 '小時);時間間隔一天小時>選擇typeof(當前日期- - - - - -(當前日期+時間間隔' 1 '一天));時間間隔一天>選擇typeof(current_timestamp- - - - - -(當前日期+時間間隔' 1 '一天));時間間隔一天第二個>選擇日期“2021-03-31”- - - - - -時間間隔' 1 ';2021年- - - - - -02- - - - - -28>選擇- - - - - -One hundred.Y- - - - - -One hundred.Y;錯誤:ARITHMETIC_OVERFLOW