Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sql-获取两列的最新日期_Sql_Sql Server 2008_Datetime_Compare - Fatal编程技术网

sql-获取两列的最新日期

sql-获取两列的最新日期,sql,sql-server-2008,datetime,compare,Sql,Sql Server 2008,Datetime,Compare,我想知道这两个的最新日期 table1 - date1 datetime not null - date2 nvarchar null 请注意,date2可以是null。在这种情况下,date1获胜。将CAST(date2作为DateTime)更改为CAST(isnull(date2,'01/01/1900')作为DateTime)这是一个非常好的解决方案,但我认为更好 select date1, date2, (CASE WHEN date1 > CAST(date2

我想知道这两个的最新日期

table1
    - date1 datetime not null
    - date2 nvarchar null

请注意,date2可以是
null
。在这种情况下,date1获胜。

CAST(date2作为DateTime)
更改为
CAST(isnull(date2,'01/01/1900')作为DateTime)
这是一个非常好的解决方案,但我认为更好

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

如何在更新查询中使用它?更新将把栅格值放在新列中。
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