对简单类型转换,CAST()函数和CONVERT()函数的效果一致,只是语法不同。前者更易使用,而后者的优势是格式化时间和数值。在以下这几种情况,二者一样:

1-1.SELECT CONVERT(decimal(5,2), '123.477')             ==>123.48

1-2.SELECT CONVERT(decimal, '123.477')                    ==>123

1-3.SELECT CONVERT(int, '123')+3                             ==>126

1-4.SELECT CONVERT(varchar(4), 'hello')                     ==>'hell'

2-1.SELECT CAST('123' AS int)                                   ==>123

2-2.SELECT CAST('123.477' AS decimal)+3                  ==>126

2-3.SELECT CAST('123.477' AS decimal(9,2))               ==>123.48

    2-4.SELECT CAST('hello' AS varchar(4))                       ==>'hell'

提问:SELECT CONVERT(int, '123.477')  和 SELECT CAST('123.477' AS int) 的写法对不?

回答:不对,会报错。因为CAST()函数和CONVERT()函数都不能执行四舍五入或截断操作,所以要把int换成decimal,就像1-2 和 2-2 一样。

语法总结:CAST (expression AS data_type)

CONVERT(data_type(length),data_to_be_converted,style)           <style是可选参数,上面的例子就没有用到>

convert一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)相互转换的时候常用到。

如:

SELECT GETDATE()                                                                   ==>2014-05-04 17:51:53.393
    SELECT CONVERT(VARCHAR(19),GETDATE())                              ==>05  4 2014  5:51PM
    SELECT CONVERT(VARCHAR(10),GETDATE(),110)                        ==>05-04-2014

其中,style的对照表如下:

Style ID Style 格式
100 或者 0 mon dd yyyy hh:miAM (或者 PM)
101 mm/dd/yy
102 yy.mm.dd
103 dd/mm/yy
104 dd.mm.yy
105 dd-mm-yy
106 dd mon yy
107 Mon dd, yy
108 hh:mm:ss
109 或者 9 mon dd yyyy hh:mi:ss:mmmAM(或者 PM)
110 mm-dd-yy
111 yy/mm/dd
112 yymmdd
113 或者 13 dd mon yyyy hh:mm:ss:mmm(24h)
114 hh:mi:ss:mmm(24h)
120 或者 20 yyyy-mm-dd hh:mi:ss(24h)
121 或者 21 yyyy-mm-dd hh:mi:ss.mmm(24h)
126 yyyy-mm-ddThh:mm:ss.mmm(没有空格)
130 dd mon yyyy hh:mi:ss:mmmAM
131 dd/mm/yy hh:mi:ss:mmmAM

运用:如:select name,shool,address,convert(Varchar(10),age)+'岁' from Table_student

总之,这两个函数在一些数据库里面,经常见到高手用的,看情况选择函数吧~

最新文章

  1. 课程笔记:——javascript中的预解释2
  2. json数组的序列化和反序列化json数组的序列化和反序列化
  3. shell判断文件或者文件夹是否存在
  4. 架构(Architecture)和框架(Framework)杂谈
  5. LeetCode Number of Digit One
  6. Cocos2d-JS v3.0 alpha不支持cocos2d-x的Physics integration
  7. USB开发库文件分析
  8. Docs list
  9. Java开发心得
  10. Linux下将UTF8编码批量转换成GB2312编码的方法
  11. STL复习之 map &amp; vector --- disney HDU 2142
  12. JS 中的对象
  13. node基础—http模块
  14. 关于第一个java程序HelloWorld的感慨
  15. 繁简字转换(C#)
  16. Aizu2249 Road Construction(dijkstra优化+思路 好题)
  17. MT【33】证明琴生不等式
  18. Spring Cloud (3)B Ribbon 负载均衡 IRule
  19. ZooKeeper 集群的安装部署
  20. 用css3实现风车效果

热门文章

  1. tomcat基础应用
  2. C++ 头文件系列(sstream)
  3. python3 annotations
  4. Python之路--你不知道的platform
  5. 对JS关于对象创建的几种方式的整理
  6. USB重定向
  7. 用php做省份的三级联动 附带数据库
  8. java多线程一览
  9. MySQL学习分享--&gt;查询--&gt;查询的分类
  10. (原创)我对未来的人类的发展,以及AI技术发展的一些思考。