sql 根据时间求差值 ,列数较多怎么办?

如图,要得出8:30到20:30,以及20:30到第二天8:30的差值,有40多列,该怎么办?一列列的相减太麻烦了。。

举个例: CONVERT(varchar(100), '2016-10-1 8:30', 23) 结果得出日期 2016-10-01
CONVERT(varchar(100), '2016-10-1 8:30', 24) 结果得出时间 8:30:00
也就是说,你知需要在datetime同时使用CONVERT(varchar(100), datetime, 23) 和CONVERT(varchar(100), datetime, 24),然后把日期相同的,以时间大的减时间少的。就行了。
温馨提示:内容为网友见解,仅供参考
无其他回答

在Sql语句中怎样计算出两个日期的差值
步骤:1、计算2009-06-23与2009-06-17之间的天数。语句如下:select datediff(d,'2009-06-17','2009-06-23')2、查询结果:datediff函数:语法:DATEDIFF(datepart,startdate,enddate)startdate 和 enddate 参数是合法的日期表达式。datepart 参数可以是下列的值:结构化查询语言(Structured Query Langua...

写出sql语句 选取数据库时间字段,和当前时间比较返回差值
很简单呀,可以看看datediff数据库时间函数 select id,datediff(day,时间列名,GetDate()) from 表明 意思是返回 对应行的,行编号和 时间差值,这条sql语句的返回形式有不同的样式,可以使毫秒微妙等等,你可以根据你的需求去填写,上面的是返回 当前时间与时间列相差的 天数 ...

sql数据库里面求数据类型是datatime的2列的差值,要求取正。
把参数调一下位置:如下:select datediff(''d'','2003-01-01','2003-01-02')返回的是1;select datediff(''d'','2003-01-02','2003-01-01')返回的是-1;

oracle plsql 怎么在一个集合里做时间差值运算?
如果不能直接操作,那么就先 lead(首次任务完成时间, 1, null) over(order by 首次开始完成时间)查出来,然后取个别名再操作就好了。如果是以前的不管,也是这么操作,后面加上where条件就行。当然如果你的开始时间和结束时间是分开写的,那么也可以直接用max来写,当然前提是你的开始时间和结束时间不...

在SQL数据库中如何计算两个时间的差值?请写详细语句和过程!!
DATEDIFF(datepart,startdate,enddate)比如:SELECT DATEDIFF(day,'2008-12-29','2008-12-30') AS DiffDate得到结果是1 datepart 参数可以是下列的值:datepart缩写年yy, yyyy季度qq, q月mm, m年中的日dy, y日dd, d周wk, ww星期dw, w小时hh分钟mi, n秒ss, s毫秒ms微妙mcs纳秒ns ...

ORACLE 获取时间差值的sql怎么写?
oracle的日期类型相减得到的是天,如果你需要得到分钟,可以这样:(date1 - date2)*24*60 如果你的字段是字符串,先转换成日期date类型:(to_date(a,'yyyy-mm-dd hh24:mi:ss') - to_date(b,'yyyy-mm-dd hh24:mi:ss'))*24*60 ...

sql求时间差,精确到秒分时
多行记录做这样的时间差值计算思路:要将 签入和签出配对处理,然后才能求出时间差值 或使用隐式游标进行处理,可以求出上一行记录和下一行记录的时间差值,但SQL语句极其晦涩难懂。SQL计算秒的差值为:select datediff(ss,'2019-01-01 02:03:04',getdate())...

sql server查询相同主键的不同时间对应数据的差值
1、根据PK,为每条记录生成RowNumber() -->假定进入临时表#Data SELECT RowNumber() OVER (PARTITION BY BuyerID ORDER BY CreateTime) AS RowNo INTO #Data FROM TableX 2、对此表进行自连接,条件为RowNo相差1 SELECT D1.BuyerID ,D1.CarMoney - D2.CarMoney AS [差价],...FROM #Data ...

...SQL代码 如何通过游标来 计算多条记录的时间差值 (有一个时间字段...
ALTER PROCEDURE [dbo].[dtdiff]-- 传入的参数 AS --存储过程内部需要的变量 declare @id int declare @trianNo varchar declare @passTime1 datetime declare @passTime2 datetime declare @time_s int -- 时间间隔S declare @id1 int declare @sql varchar --定义一个游标 declare CS cursor...

sql 字符型时间之间求时间差
你需要先将字符型的时间数据转换为日期时间型然后直接求差值。用convert()函数

相似回答