Sql datediff(分钟,23:30,24:00)错误
在SQL 2008中,为什么执行此操作时会出现错误:Sql datediff(分钟,23:30,24:00)错误,sql,Sql,在SQL 2008中,为什么执行此操作时会出现错误: select datediff (minute, '23:30','24:00') 错误是: Msg 241, Level 16, State 1, Line 1 Conversion failed when converting date and/or time from character string. 即使我将24:00更改为00:00为什么结果显示-1410 请问我可以使用哪些替代方案?如果您要查找“23:30”和“24:00
select datediff (minute, '23:30','24:00')
错误是:
Msg 241, Level 16, State 1, Line 1
Conversion failed when converting date and/or time from character string.
即使我将24:00
更改为00:00
为什么结果显示-1410
请问我可以使用哪些替代方案?如果您要查找“23:30”和“24:00”之间的差异,从技术上讲,这是第二天,那么您将使用
select datediff (minute, '2012-07-10 23:30','2012-07-11 00:00')
使用时:
select datediff (minute, '23:30','00:00')
“00:00”被解释为同一天,这就是您获得-1410
的原因。一天中总共有1440分钟减去30分钟的差值。DATEDIFF
函数是:
DATEDIFF ( datepart , startdate , enddate )
如果您的结束日期“00:00”早于开始日期,则您将得到一个负数
编辑:
根据您的评论,您将在表格中使用以下内容,然后在endtime
周围使用CASE
语句,为其添加一天:
select datediff(minute
, starttime
, case
when endtime = '00:00'
then dateadd(d, 1, endtime)
else endtime END)
from yourtable
请参见如果您正在查找“23:30”和“24:00”之间的差异,从技术上讲,这是第二天,那么您将使用
select datediff (minute, '2012-07-10 23:30','2012-07-11 00:00')
使用时:
select datediff (minute, '23:30','00:00')
“00:00”被解释为同一天,这就是您获得-1410
的原因。一天中总共有1440分钟减去30分钟的差值。DATEDIFF
函数是:
DATEDIFF ( datepart , startdate , enddate )
如果您的结束日期“00:00”早于开始日期,则您将得到一个负数
编辑:
根据您的评论,您将在表格中使用以下内容,然后在endtime
周围使用CASE
语句,为其添加一天:
select datediff(minute
, starttime
, case
when endtime = '00:00'
then dateadd(d, 1, endtime)
else endtime END)
from yourtable
请参见结果显示为-1410,因为23:00和之前的00:00之间有1410分钟。结果显示为-1410,因为23:00和之前的00:00之间有1410分钟。在我看来,24:00在SQL中是无效的时间。正如我所知,24小时格式从00:00到23:59在我看来,24:00在SQL中是无效的时间。据我所知,24小时格式从00:00到23:59谢谢,我有两列,开始时间和结束时间。。。那么,获得两者之间的分钟数的最佳方法是什么?当end\u time=00:00时,我是否只需要执行datediff(days,-1,end\u time)?有更好的办法吗?该列没有日期组件。只有时间谢谢,我有两个专栏,开始时间和结束时间。。。那么,获得两者之间的分钟数的最佳方法是什么?当end\u time=00:00时,我是否只需要执行datediff(days,-1,end\u time)?有更好的办法吗?该列没有日期组件。唯一的时间