我的table是:
create table Test_Bench
(
id int,
start_time varchar(20),
stop_time varchar(20)
)
我的数据集是:
insert into Test_Bench
values (1, '20200520070000', '20200520153000');
我想计算我的停止时间和开始时间之间的差,以分钟为单位,但是列在 varchar
格式在将varchar转换为int时出错。
我尝试将varchar转换为int、bigint、datetime、timestamp,但是它们都没有工作表已经存在,并且在创建时没有遵循正确的日期和时间数据类型。现在根据我的分析,我试图从中提取日期和时间,然后计算提取的时间之间的差异。我的预期产出是
差异(2020-05-2020 15:30:00-2020-05-2020 07:00:00)=510分钟
4条答案
按热度按时间sulc1iza1#
您可以使用cast或convert将varchar转换为int。从test\u bench中选择(cast(start\u time as int)-cast(stop\u time as int))
请试试这个。
ycggw6v22#
一点
STUFF()
和一个TRY_CONVERT()
例子退货
juud5qan3#
这里也回答了类似的问题。对于特定的模式,请尝试以下操作:
如果您可以将日期转换到表中,或者将转换抽象为自定义项,那就更好了,但这是基本的想法。
xytpbqjk4#
修复你的设计,然后这是微不足道的。有日期和时间数据类型,您应该使用它们来存储日期和时间值。那你只需要
DATEDIFF
: