2010-05-27 111 views
0
table1 
    - date1 datetime not null 
    - date2 nvarchar null 

我想獲取這兩個的最新日期。sql - 獲取兩列的最新日期

select date1, date2, 
(CASE WHEN date1 > CAST(date2 as DateTime) THEN date1 ELSE date2 END) as DateTime) as LatestDate 
from table1 

請注意,date2可以是null。在這種情況下,date1贏了。

回答

1
SELECT date1, date2, 
CASE 
    WHEN date1 > CAST(ISNULL(date2,'1900-01-01') as DateTime) THEN 
    date1 
    ELSE 
    CAST(date2 as DateTime) 
END as LatestDate 
FROM table1 
+0

oups .. +1沒看到你的答案,直到我張貼了相同.. – 2010-05-27 00:52:51

+0

我如何使用它更新詢問後?該更新將把爐排值放入新列中。 – stacker 2010-05-27 01:15:42

+2

@stacker'update table1 set newcolumn = CASE .... END' – 2010-05-27 01:25:52

1

變化CAST(date2 as DateTime)CAST(isnull(date2,'01/01/1900') as DateTime)