zoukankan      html  css  js  c++  java
  • 数据库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

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

  • 相关阅读:
    AcWing 1135. 新年好 图论 枚举
    uva 10196 将军 模拟
    LeetCode 120. 三角形最小路径和 dp
    LeetCode 350. 两个数组的交集 II 哈希
    LeetCode 174. 地下城游戏 dp
    LeetCode 面试题 16.11.. 跳水板 模拟
    LeetCode 112. 路径总和 递归 树的遍历
    AcWing 1129. 热浪 spfa
    Thymeleaf Javascript 取值
    Thymeleaf Javascript 取值
  • 原文地址:https://www.cnblogs.com/klbc/p/3707608.html
Copyright © 2011-2022 走看看