• 数据库CAST()函数和CONVERT()函数比较


        对简单类型转换,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 IDStyle 格式
    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

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

  • 相关阅读:
    java中的数组
    java中的break continue
    java 自加和短路问题 几个例子
    循环语句
    K-近邻算法小结
    数据结构与算法学习笔记 (三) 排序 搜索
    数据结构与算法学习笔记 (二) 栈 链表 队列 树 堆 图 并查集
    Spark数据分析技术学习笔记(一)——基础概念、RDD使用
    Python数据分析学习笔记
    Python机器学习(Sebastian著 ) 学习笔记——第六章模型评估与参数调优实战(Windows Spyder Python 3.6)
  • 原文地址:https://www.cnblogs.com/klbc/p/3707608.html
Copyright © 2020-2023  润新知