合并仅在SQL Server中获取当前时间的字段
对于SQLServer2005,如果此select返回null,如何将此语句与当前时间合并-合并仅在SQL Server中获取当前时间的字段,sql,sql-server-2005,Sql,Sql Server 2005,对于SQLServer2005,如果此select返回null,如何将此语句与当前时间合并- select top 1 OrderDate as OldestOrderDate from ordersview ORDER BY OldestOrderDate OrderDate的类型为datettime。这就是您合并此语句的方式。: coalesce( (select top 1 OrderDate as OldestOrderDate from ordersview), get
select top 1 OrderDate as OldestOrderDate
from ordersview
ORDER BY OldestOrderDate
OrderDate的类型为datettime。这就是您合并此语句的方式。:
coalesce(
(select top 1 OrderDate as OldestOrderDate from ordersview),
getDate());
如果您只需要时间部分:
coalesce(
(select top 1 OrderDate as OldestOrderDate from ordersview),
convert(varchar(10), getdate(), 8));
这是一个
但是如果我想把旧的estordate和getdate都转换成时间药剂,那我该怎么办呢巴兹
在这种情况下,请尝试。这就是合并此语句的方法。:
coalesce(
(select top 1 OrderDate as OldestOrderDate from ordersview),
getDate());
如果您只需要时间部分:
coalesce(
(select top 1 OrderDate as OldestOrderDate from ordersview),
convert(varchar(10), getdate(), 8));
这是一个
但是如果我想把旧的estordate和getdate都转换成时间药剂,那我该怎么办呢巴兹 在这种情况下,请尝试。尝试以下操作:
select top 1 coalesce(OrderDate, getdate()) as OldestOrderDate from ordersview
如果OrderDate不为空,则返回OrderDate,否则返回当前日期
从参数中返回第一个非空值。请尝试以下操作:
select top 1 coalesce(OrderDate, getdate()) as OldestOrderDate from ordersview
SELECT OldestOrderDate = MAX(COALESCE(OrderDate, GETDATE()))
FROM (SELECT OrderDate = MAX(OrderDate) FROM dbo.ordersview UNION ALL SELECT NULL);
如果OrderDate不为空,则返回OrderDate,否则返回当前日期
返回其参数中的第一个非空值。如果表为空,您将得不到任何内容如果表为空,您将得不到任何内容为什么您有
top 1
而没有ORDER BY
?请不要告诉我您的视图是选择100%的顶部。。。订购依据…
?PS如果您的视图中确实有前100%。。。ORDER BY…
请将其删除并阅读以下内容(几天前我碰巧在博客上看到了这件事):别担心,我知道视图没有排序!谢谢。为什么您有前1名
而没有订购人
?请不要告诉我您的视图是选择100%的顶部。。。订购依据…
?PS如果您的视图中确实有前100%。。。ORDER BY…
请将其删除并阅读以下内容(几天前我碰巧在博客上看到了这件事):别担心,我知道视图没有排序!谢谢。但是如果我想把旧的EstorderDate和getdate都转换成时间药水,我该怎么办?但是如果我想把旧的EstorderDate和getdate都转换成时间药水,我该怎么办呢?啊,当我遇到这个问题时,我同意Mosty Mostacho的答案,但是转换成使用MAX()–事后看来,这是显而易见的!——这是非常优越的。但老实说,我没有那么复杂。为什么是派生表?为什么联合所有人
<代码>合并(MAX(OrderDate),GETDATE())应该可以很好地工作。啊,当我遇到这个问题时,我按照Mosty Mostacho的答案,但是转换为使用MAX()——事后看来很明显这是非常优越的。但老实说,我没有那么复杂。为什么是派生表?为什么联合所有人
<代码>合并(MAX(OrderDate),GETDATE())应该可以正常工作。
SELECT OldestOrderDate = MAX(COALESCE(OrderDate, GETDATE()))
FROM (SELECT OrderDate = MAX(OrderDate) FROM dbo.ordersview UNION ALL SELECT NULL);