2010-05-27 4 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. в этом случае дата1 победит.

ответ

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

невные .. +1 не увидел ваш ответ, пока я отправил же .. –

+0

Как я могу использовать его в запросе обновления? обновление будет помещено значение решетки в новый столбец. – stacker

+2

@stacker 'update table1 set newcolumn = CASE .... END' –

1

изменение CAST(date2 as DateTime) в CAST(isnull(date2,'01/01/1900') as DateTime)

Смежные вопросы