2014-11-06 42 views
0

我正在使用SQL 2008 R2,并且我在其中一个选择行中使用了DATEPART,因此会根据时间将日期和时间列转换为小数。如何在使用DATEPART时处理NULL值?

但我有一些NULL值通过未来我想显示为0。我已经使用其他列,但ISNULL无法使用它在这一个,因为我不知道如何与做结合DATEPART。

请参考下面,我已经使用日期部分,也想换空值0

DATEPART(hour, tblCarerContract.ContractHours) + (DATEPART(minute, tblCarerContract.ContractHours)/60.0) as ContractHours 

任何人都可以在这方面帮助请。

回答

0

去对此正确的方法是使用一个COALESCE语句将空值更改为0。

尝试是这样的

COALESCE(DATEPART(hour, tblCarerContract.ContractHours), 0) + (COALESCE(DATEPART(minute, tblCarerContract.ContractHours), 0)/60.0) as ContractHours 
+0

嗨伊恩,只是测试它和它的作品完美。非常感谢你,这一直使我疯狂。正如你所看到的,我对此仍然很陌生。再次感谢你的帮助 ! – 2014-11-06 20:13:36

+0

没问题,你来对地方了! – 2014-11-06 20:17:17