2016-07-22 115 views
0

我试着用天花板围捕一个DATEDIFF值,但仍然得到了零:四舍五入DATEDIFF,TSQL

SELECT (CEILING(DATEDIFF(DAY, '2016-04-02T04:59:59', '2016-04-02T05:59:59'))) 

是否有可能围捕DATEDIFF?

+0

如果你想要在同一天发生的事情等于1而不是零,那么它可能会更容易得到小时差和div除以24,然后将其舍入。 – Hogan

+1

您obatin为零,因为日差是零 – scaisEdge

+0

如果确实是同一时间,它应该返回什么? –

回答

0

DATEDIFF()返回0当使用day如果两个日期是同一天。您需要使用更小的时间增量和划分DATEDIFF(),小时和24分钟和1440,第二次和86,400,等的结果是:

SELECT CEILING(DATEDIFF(Second, '2016-04-02T04:59:59', '2016-04-02T05:59:59')/(24.0*60*60)) 

注:由一个十进制值,否则鸿沟的DATEDIFF()结果会返回一个整数。