语法规则:alter table 表名 modify 字段名 新类型
例如,有张表student,有id字段是int型的,改为varchar类型
alter table student modify id varchar(20);
执行该sql语句即可。
注意:如将varchar类型转成int类型,原字段必须是数字,
而且int的最大值是4294967295,原字段的值需要小于等于int的最大值才可以。
确定你SQL服务器上日期时间格式
然后把scandate逐一提取出来,变成一时间格式
例:
20070122161307->
2007-01-22 16:13:07
Cast (
(
SubString(scandate,1,4)+'-'+SubString(scandate,5,2)+'-'+SubString(scandate,7,2)+' '+SubString(scandate,9,2)+':'+
SubString(scandate,11,2)+':'+SubString(scandate,13,2)
) As DateTime )
这个字段应该设置成nvarchar,
存的时候用N‘aa’ 这样,
输出的时候就不需要任何 *** 作了。
但是如果本身不是unicode 类型的字段, 那么存储的时候已经乱码了,
查询的时候是变不回来的。
给你段参考代码,读取clob数据
import javaioInputStream;
import javaioReader;
import javasqlConnection;
import javasqlResultSet;
import javasqlStatement;
public class TestClobOut {
public static void main(String args[]){
String data;
Reader inStream=null;
//获得数据库连接
Connection con = ConnectionFactorygetConnection();//ConnectionFactory类是另外定义的,不必纠结
consetAutoCommit(false);
Statement st = concreateStatement();
//不需要“for update”
ResultSet rs = stexecuteQuery("select CLOBATTR from TESTCLOB where ID=1");
if (rsnext())
{
javasqlClob clob = rsgetClob("CLOBATTR");
inStream = clobgetCharacterStream();
char[] c = new char[(int) cloblength()];
inStreamread(c);
//data是读出并需要返回的数据,类型是String
data = new String(c);
inStreamclose();
}
inStreamclose();
concommit();
conclose();
}
}
select
case when charindex('g',isnull(DescFlexField_PrivateDescSeg3,''))=0 then cast(0 as decimal(18,3))
when charindex('g',isnull(DescFlexField_PrivateDescSeg3,''))>0
then cast(SUBSTRING(isnull(DescFlexField_PrivateDescSeg3,''),0,LEN(isnull(DescFlexField_PrivateDescSeg3,''))) as decimal(18,3))
else cast(DescFlexField_PrivateDescSeg3 as decimal(18,3))
end
from sm_so ,每个字段都进行一次类型转换
以上就是关于mysql数据库中sql修改字段类型要怎么做全部的内容,包括:mysql数据库中sql修改字段类型要怎么做、数据库类型转换、SQL Server 对字段强制转换类型等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)