合并仅在SQL Server中获取当前时间的字段

时间:2012-03-04 21:47:02

标签: sql sql-server-2005

关于Sql Server 2005,如果此select返回null,如何将此语句与当前时间合并 -

select top 1 OrderDate as OldestOrderDate 
from ordersview 
ORDER BY OldestOrderDate 

OrderDate的类型为datettime。

3 个答案:

答案 0 :(得分:4)

这就是coalesce this statement

的方法
coalesce(
  (select top 1 OrderDate as OldestOrderDate from ordersview),
  getDate());

如果您只想要时间部分:

coalesce(
  (select top 1 OrderDate as OldestOrderDate from ordersview),
  convert(varchar(10), getdate(), 8));

这是example

  

但是,如果我想将OldestOrderDate和getdate转换为时间药水,我该怎么办呢? - 巴兹

在这种情况下,请尝试this

答案 1 :(得分:2)

SELECT OldestOrderDate = MAX(COALESCE(OrderDate, GETDATE()))
FROM (SELECT OrderDate = MAX(OrderDate) FROM dbo.ordersview UNION ALL SELECT NULL);

答案 2 :(得分:-1)

尝试以下方法:

select top 1 coalesce(OrderDate, getdate()) as OldestOrderDate from ordersview

如果OrderDate不为null,则返回OrderDate,否则返回当前日期。

Coalesce返回其参数中的第一个非null值。