Подтверждает oObject
значение boolean. Если он был ложным (например, 0, null
, undefined
и т. Д.), Он будет false
, в противном случае true
.
!oObject //Inverted boolean
!!oObject //Non inverted boolean so true boolean representation
Таким образом, !!
не является оператор, это всего лишь оператор !
дважды.
Real World Пример «Test IE version»:
let isIE8 = false;
isIE8 = !! navigator.userAgent.match(/MSIE 8.0/);
console.log(isIE8); // returns true or false
Если вы ⇒
console.log(navigator.userAgent.match(/MSIE 8.0/));
// returns null
но если вы ⇒
console.log(!!navigator.userAgent.match(/MSIE 8.0/));
// returns true or false
Привет, если я понимаю, что вы хотите, чтобы этот запрос работал:
select *,
Case when schedule_at is not NULL THEN (CASE
when actual_start < schedule_at THEN 'Early'
else 'Late'
END)
ELSE
(case
when actual_start between schedule_from and schedule_to THEN 'On Time'
when datediff(minute,actual_start,schedule_from) < 0 THEN 'Late'
else 'Early'
END) END as Delivery
from some_dates_table