Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何在单个查询中添加小时和分钟_Sql_Sql Server - Fatal编程技术网

Sql 如何在单个查询中添加小时和分钟

Sql 如何在单个查询中添加小时和分钟,sql,sql-server,Sql,Sql Server,如何在单个查询中添加小时和分钟 我试过这个 Select DATEADD(hh,23.59,CAST('2016-07-08' AS DATETIME)) 我需要广告23小时59分钟,但我的代码只增加了小时数。为什么?这个怎么样 Select DATEADD(minute, 23*60 + 59, CAST('2016-07-08' AS DATETIME)) 编辑: 如果获得浮点数/十进制值,如23.59,则可以执行以下操作: Select DATEADD(minute, FLOOR(@h

如何在单个查询中添加小时和分钟

我试过这个

Select DATEADD(hh,23.59,CAST('2016-07-08' AS DATETIME))
我需要广告23小时59分钟,但我的代码只增加了小时数。为什么?这个怎么样

Select DATEADD(minute, 23*60 + 59, CAST('2016-07-08' AS DATETIME))
编辑:

如果获得浮点数/十进制值,如23.59,则可以执行以下操作:

Select DATEADD(minute, FLOOR(@hhmm) * 60 + (@hhmm - FLOOR(@hhmm)) * 100, CAST('2016-07-08' AS DATETIME))
注意:您还可以使用:

Select DATEADD(minute, FLOOR(@hhmm) * 60 + (@hhmm % 1) * 100, CAST('2016-07-08' AS DATETIME))

但是我发现模运算符的这种用法有点不正常。

您也可以使用
DATEADD()
两次:

 Select DATEADD(minute,59,DATEADD(hh,23,CAST('2016-07-08' AS DATETIME)))

在您的例子中,
datepart
参数是添加了一个整数的日期的一部分。因此,
DATEADD
函数只会忽略输入的任何小数部分

要获得想要的结果,您需要使用
DATEADD
两次,加上23小时,然后再加上59分钟,或者在日期上加上一天,再减去1分钟,如下所示:

Select DATEADD(MI, -1, CAST('2016-07-08' AS DATETIME) + 1)


另请参见。

另一种方法:你可以加上一天,然后减去分钟

输出相同

  select DATEADD(minute, -1, DATEADD(DAY, 1,CAST('2016-07-08' AS DATETIME)))

使用以下代码将时间部分添加到日期

SELECT DATEADD(Day, DATEDIFF(Day, 0, CAST('2016-07-08' AS DATETIME)), '23:59:00.000')

date加上分钟和23.59*60?还是在DATEADD上打两个电话?(一个代表小时,一个代表分钟)如果这是为了定义某个时段的终点,您应该知道,计算独占端点通常要容易得多(并使用
@MatBailie 23.59将不起作用,因为您需要59分钟作为23小时单位的百分比。要使您的计算起作用,您需要23.983333333*60。我建议使用(23*60)+59=1439。进行最终查询“选择DATEADD(MINUTE,1439,CAST('2016-07-08'作为DATETIME))”.我刚注意到下面的答案中有这个…谢谢托比,我编辑了我的答案,希望它能回答他的问题。数学为了营救!感谢我尝试了这个,我如何分割来自db 23.59的浮点值,它将验证它可以有任何值,如20,18.30 15.22我如何与小时部分相乘,如23*60,并加上分钟部分59它对我有效!