How do you handle NULLs in a DATEDIFF comparison?

datediff, sql, t-sql

Solution

You can just add extra logic into your CASE:

UPDATE TABLE 
SET NAME = p.name, 
    NEW_DATE = CASE 
                    WHEN d.date1 IS NULL THEN -- somewhat 
                    WHEN d.date2 IS NULL THEN -- somewhat 
                    WHEN DATEDIFF(minute,d.date1,d.date2) <= 0 THEN d.date 
                    ELSE d.date2 
               END 
FROM TABLE2 d 
INNER JOIN TABLE3 p 
  ON d.ACCTNUM = p.ACCTNUM 

Problem

I have to compare 2 separate columns to come up with the most recent date between them. I am using DATEDIFF(minute, date1, date2) to compare them, however, in some records the date is Null, which returns a null result and messes up the CASE. Is there a way around this, or a way to predetermine which date is null up front? (psudocode) ``` UPDATE TABLE SET NAME = p.name, NEW_DATE = CASE WHEN DATEDIFF(minute,d.date1,d.date2) <= 0 THEN d.date ELSE d.date2 END FROM TABLE2 d INNER JOIN TABLE3 p ON d.ACCTNUM = p.ACCTNUM ```

Original source