不一定非要在存储过程中转换,用普通的sql语句就可以,一般用cast函数。
测试方法:
创建表及插入数据:
create table test(id int,
starttime varchar(20));
insert into test values (1,'2015-07-11');
将starttime字段转化为datetime类型:
select cast(starttime as datetime) from test;结果如图,这时,starttime就转成了datetime类型:
建议你优化一下你的sql,你完全可以不用子查询将那4个表都扫描两遍(等到你数量巨大,效率会很低,你要在开发阶段避免这种情况的发生),你看一下oracle的LAG()和LEAD()统计函数,它可以在一次查询中取出同一字段的前N行的数据和后N行的值
你的sstatus_name字段里是不是字符和数字都有啊,你贴一下,看看有什么规律
给你个例子
create table a (id number,name varchar2(10));
insert into a values (1,'aa');
insert into a values (2,'bb');
insert into a values (3,'cc');
cimmit;
取当前行的前一行数据
select id,name,lag(id,1)over(order by id),lag(name,1)over(order by id) from a where id in (2,3);
取当前行的后一行数据
select id,name,lead(id,1)over(order by id),lead(name,1)over(order by id) from a where id in (2,3);
这个a表的id不就相当于你的llocation_id吗?
一般情况下是需要的,否则mybatis强行插入可能会报错。
简单的比如数据库中的字段是int类型,mybatis中用jdbcType=varchar类型去映射,这样不会报错。强制将字符串插入数据中整型。最好类型一致,避免不必要的异常错误出现。
以上就是关于如何在sql server存储过程中转化数据类型全部的内容,包括:如何在sql server存储过程中转化数据类型、oracle数据库里面的字符串转成数字类型,、数据库的数据类型为什么要转为jdbc数据类型,是因为我们无法 *** 作数据库里的数据类型吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)