2016-09-26 97 views
1

我有獲取派生值刪除負值

select datediff(minute, date_field_1, date_field_2) as date_diff from table_name; 

的問題是,一些在結果中的值可以是負的date_field_1可以大於date_field_2在某些情況下在一定的查詢。

所以這個結果與結果表中的正值一起是負值。

是否有無論如何設置一些默認值或省略,並給那些負值計算值爲零或零?

使用紅移。

+0

做了我們的解決方案之一解決問題了嗎? – rbr94

回答

2

捕獲負值的一種方法是使用CASE WHEN。它會檢查你的DATEDIFF是否小於0 我提出0爲默認值:

SELECT 
    CASE WHEN datediff(minute, date_field_1, date_field_2) < 0 
    THEN 0 
    ELSE datediff(minute, date_field_1, date_field_2) END as date_diff 
FROM table_name; 
1

這是你想要的嗎?

select (case when date_field_1 >= date_field_2 
      then datediff(minute, date_field_1, date_field_2) 
      else 0 
     end) as date_diff 
from table_name;