sql server2000中CONVERT中各个参数的意思

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql server2000中CONVERT中各个参数的意思相关的知识,希望对你有一定的参考价值。

CONVERT ( data_type , expression , style )
第一个参数为要转换后的数据类型
第二个参数为要转换的表达式,可以是字段或表达式
第三个参数为转换后的格式,如日期型转换后有很多种格式,yyyy/mm/dd 等。
第三个参数可省略追问

例如
SELECT * FROM T1 LEFT JOIN T2 ON convert(varchar(20),T1.c)=T2.d
字段c为decimal型,d为char型,sql文执行时报错的原因是?

追答

报的什么错?

追问

转换数字数据类型为varchar时发生错误
有没有其他的方法让那个结合条件执行时不报错?

追答

应该没有超过20位的数字吧?

追问

没有,T1.c=0,但是T2.d中没有'0'这个值,
就出现了上面说的错误。

追答

这跟T2应该是没有关系的,你改成用cast转换试试,cast(T1.c as varchar(20) = T2.d
或者将T2.d转换成decimal型也试下T1.c = convert(decimal(16,4),T2.d)

追问

你说的我都尝试过,依然报的那个错。。

追答

那你先不关联,直接用select convert(varchar(20),c) from T1会报错吗?

参考技术A 例如:
1.select convert(varchar(10),getdate(),23) 结果:2012-12-25
意思是将日期型的数据 getdate() 转变程 varchar型 且字段长度为10
2. select convert(float,123)

将int 型的123 转换成浮点型 float 结果是:123.0
参考技术B http://www.w3school.com.cn/sql/func_convert.asp 去看看吧

SQL Server函数中 convert(char(10),rq,21)>具体代表啥含义?

rq是datetime型数据

把日期转成字符串
char(10),表示转换后的字符串长度为10
rq,就是被转换的日期参数
21代表格式

convert的用法,及日期格式,见下:
语法
使用 CONVERT:

CONVERT (数据类型[长度], 表达式 [, 日期格式样式])

转换为日期型时可使用日期格式样式
不带世纪数位 (yy) 带世纪数位 (yyyy) 标准 输入/输出**
- 0 或 100 (*) 默认值 mon dd yyyy hh:miAM(或 PM)
1 101 美国 mm/dd/yyyy
2 102 ANSI yy.mm.dd
3 103 英国/法国 dd/mm/yy
4 104 德国 dd.mm.yy
5 105 意大利 dd-mm-yy
6 106 - dd mon yy
7 107 - mon dd, yy
8 108 - hh:mm:ss
- 9 或 109 (*) 默认值 + 毫秒 mon dd yyyy hh:mi:ss:mmmAM(或 PM)
10 110 美国 mm-dd-yy
11 111 日本 yy/mm/dd
12 112 ISO yymmdd
- 13 或 113 (*) 欧洲默认值 + 毫秒 dd mon yyyy hh:mm:ss:mmm(24h)
14 114 - hh:mi:ss:mmm(24h)
- 20 或 120 (*) ODBC 规范 yyyy-mm-dd hh:mm:ss[.fff]
- 21 或 121 (*) ODBC 规范(带毫秒) yyyy-mm-dd hh:mm:ss[.fff]
- 126(***) ISO8601 yyyy-mm-dd Thh:mm:ss:mmm(不含空格)
- 130* 科威特 dd mon yyyy hh:mi:ss:mmmAM
- 131* 科威特 dd/mm/yy hh:mi:ss:mmmAM
参考技术A 这是日期格式转换
参照微软的联机例子和语法,这样对你有帮助

参考资料:http://technet.microsoft.com/zh-cn/library/ms187928(SQL.90).aspx

参考技术B 转换数据类型

以上是关于sql server2000中CONVERT中各个参数的意思的主要内容,如果未能解决你的问题,请参考以下文章

SQL SERVER2000将多行查询结果拼接到一行数据

sql server查看表大小

sqlserver2000数据库数据转移

SQL SERVER中强制类型转换cast和convert的区别

SQL SERVER中强制类型转换cast和convert的区别

Oracle 数据库中执行SQL语句 出现 [Err] ORA-00936: 缺失表达式! 但在SQL server 中可以使用 大家帮帮忙