⑴ sql语句中如何将字符类型转换成数字类型
先检查金额列的数据是否都符合小数规范,转为数字格式只有是数字的字符串才能转,如000012转为12,.55转为0.55,若是个英文符号等字符转了就报无效数字类型的错。
⑵ SQL语句类型转换问题
你的b列里面是不是类似'123' 之类的数据,也就是说全部以数字形式出现的字符类型,才可以转化int。有可能是这个原因。
⑶ SQL如何用语句更改字段的数据类型
SQL如何用语句更改字段可以用以下语句可以实现:
altertable表名altercolumn字段名变更后的字段类型。
注意:
但若是关键字段,带有主键,并且字段类型为用户自定义类型,具有默认值的情况下,用上述语句会出现错误。
例如:
现假设表为TABLE1,关键字段为FIELD1,主键为PK_FIELD1,关键字段的数据类型为用户自定义数据类型cha_field1,实际为CHAR(10),默认值为dbo.D_field1现要求将字段类型改为varchar(20),默认值去除错误提示如下:
服务器:消息5074,级别16,状态1,行1
对象'D_field1'依赖于列'field1'。
服务器:消息5074,级别16,状态1,行1
对象'PK_field1'依赖于列'field1'。
服务器:消息4922,级别16,状态1,行1
ALTERTABLEALTERCOLUMNfield1失败,因为有一个或多个对象访问此列。
⑷ 在SQL语句里怎么转换数据类型
ALTER TABLE 表名 ALTER COLUMN 列名 新的数据类型[(长度)] NULL或NOT NULL
例:ALTER TABLE 教师 ALTER COLUMN 办公室 CHAR(20) NOT NULL default "办公室"
把写好的句子放到执行其他sql语句的地方比如EXEcute(sql)这样的地方,执行一次就行,然后改回来。
⑸ 怎样在数据库中使用sql语句进行类型的转换
字符串和整数日期都可以转换的。
1.当字段类型为:INT;
2.传入的值为:字符串类型;
3.WHERE条件中的整型字段的传入值用单引号或双引号;
上述描述的前提条件下,会对把传入的 值类型 转换为 字段定义的数据类型,故WHERE 条件是可以使用到索引的,但从数据库表读出到内存块后的值会被 转换为 传入值的数据类型,从而导致ORDER BY无法使用到索引
解释为何ORDER BY ID没有外部排序 或extra的内容为空,那是因为WHERE ID='2' 按主键查询只能查到唯一的一条记录,故不需要排序;
ORDER BY tid 时,WHERE tid='2' 按普通索引去查找的话,能查找到的数据条数会大于1条,加上数据类型隐形转换了,为此需要再额外进行排序和extra部分有内容显示;
⑹ sql语句中 数据类型转换 string to int
oracle: to_number(str)
sqlserver: convert(int,字段名)
⑺ SQL语句类型转换问题
你只在where条件中使用了类型转换,应该是
select
a,cast(b
as
int)
into
#M
from
S
就可以了
⑻ sql转换类型问题
要分两步走:
首先,把datetime型转换成varchar型;
然后,把字符串中的"-"号,":"号,以及空格去掉.
参考如下示例:
declare @date datetime
set @date='2007-02-25 01:02:00'
select replace(replace(replace(convert(varchar(30),@date,120),'-',''),':',''),' ','')
补充,数据类型转换函数可以将datetime型的一步转换为字符串型,但得不到你要的那种格式,顶多也就只能一步转换成'2007-02-25 01:02:00'的字符串样式,当然也可以转换成其他的排列样式,但只有这个样式离你的要求最相近,所以,要最终得到你那种样式,就必须还要经过一次字符串的替换操作.
replace(replace(replace(convert(varchar(30),@date,120),'-',''),':',''),' ','')
这个函数组合已经很精炼了,你完全可以把它当作一个独立的函数使用