Sql 将军事时间插入日期时间列

Sql 将军事时间插入日期时间列,sql,Sql,例如,我有两列数据 Row_Date 2013-01-03-00:00:00 Starttime 130 我需要的是获取开始时间,并将其放入小时和分钟字段中的date\u time列中,例如 Datetime 2013-01-03-01:30:00 目前我所能做的就是使用下面的命令输入小时(我在别处找到) 我能理解为什么这不起作用,因为它将开始时间除以100,只剩下小时而不是分钟,但我不知道如何包含分钟 我找到了另一个命令,但无法使用该命令: ,CAST(CAST(row_

例如,我有两列数据

Row_Date    
2013-01-03-00:00:00

Starttime   
130 
我需要的是获取开始时间,并将其放入小时和分钟字段中的
date\u time
列中,例如

Datetime
2013-01-03-01:30:00
目前我所能做的就是使用下面的命令输入小时(我在别处找到)

我能理解为什么这不起作用,因为它将开始时间除以100,只剩下小时而不是分钟,但我不知道如何包含分钟

我找到了另一个命令,但无法使用该命令:

,CAST(CAST(row_date AS VARCHAR(8)) + ' ' 
 + STUFF(RIGHT( '000' + CAST(StartTime AS VARCHAR(4)), 4), 3,0, ':') AS DATETIME)
在别处也发现了这一点,但我得到了以下错误:

从字符串转换日期和/或时间时,转换失败


为什么要尝试格式化
DATETIME
列?显示时将格式设置为字符串,因为数据库将以某种内部格式存储它。为什么
starttime
列的数据类型是整数而不是时间?starttime列来自另一个数据源(avaya),令人烦恼的是,它就是这样出现的。我想它不需要像那样格式化,但我仍然需要包括starttime的分钟数,而不仅仅是starttime/100的结果。我开始认为我需要将开始时间转换成一个合适的时间格式,然后将其包含在日期时间栏中。日期时间栏就在那里,但不太正确。结果2013-01-03 02:48:00.000将分钟添加进去,但是,输出是这样的2013-01-03 02:48:00.000这是在起始时间为230时,因此不是将30放入,而是将48放入。真讨厌日期时间计算
,CAST(CAST(row_date AS VARCHAR(8)) + ' ' 
 + STUFF(RIGHT( '000' + CAST(StartTime AS VARCHAR(4)), 4), 3,0, ':') AS DATETIME)
CAST(DATEADD(MINUTE, 60 * FLOOR(StartTime/100) + StartTime % 100, CONVERT(char(12), ROW_DATE, 112)) AS DATETIME) AS DATE_TOME