DATEADD使用小数 - 变通办法吗?

Ale*_*ith 2 t-sql datetime dateadd

我正在尝试做类似下面的事情(我已经简化了问题,试图解决这个问题).

PRINT DATEADD(week, 0.2,  GETDATE())
Run Code Online (Sandbox Code Playgroud)

由于dateadd的number参数被截断为int,我意识到这将无法工作.

我试图想出一种方法,将0.2转换为数小时,然后能够使用类似的东西(我很好,因为它与小时一样准确).

PRINT DATEADD(hour, X,  GETDATE())
Run Code Online (Sandbox Code Playgroud)

任何想法如何开始?我发现找到任何东西来获取另一个日期部分中的一个日期部分的十进制表示很棘手.

它必须是基于集合的性能查询.

从理论上讲,我必须这样做,所以十进制年份也可以使用,但我会把它作为一个单独的问题来解决......

Cur*_*urt 6

1周= 7天= 168小时= 10080分钟

0.2周= 2016分钟

PRINT DATEADD(minute, 2016, GETDATE())

为了得到这个工作多年,你可以写一个User Defined Function,你可以输入几年小数,然后这是乘以分钟,运行DATEADD使用minutes