• 欢迎访问金笔头博客,这是一个菜鸟(伪)程序员的自留地,欢迎访问我的github:点击进入

CAST和CONVERT的区别和用法

SQLServer eason 2283次浏览 2个评论 扫描二维码

CAST、CONVERT都可以执行数据类型转换。在大部分情况下,两者执行同样的功能,不同的是CONVERT还提供一些特别的日期格式转换,而CAST没有这个功能。
既然CONVERT包括了CAST的所有功能,而且CONVERT还能进行日期转换,那么为什么需要使用CAST呢?实际上,这是为了ANSI/ISO兼容。CAST是ANSI兼容的,而CONVERT则不是。

语法:

   CAST (expression AS data_type [ (length ) ])
   CONVERT (data_type [ ( length ) ] , expression [ , style ])

示例:

   SELECT 'AB' + 1 --此语句报错,在将 varchar 值 'AB' 转换成数据类型 int 时失败。
   SELECT 'AB' + CAST(1 AS varchar) --输出 AB1
   SELECT 'AB' + CONVERT(varchar,1) --输出 AB1
   CAST和CONVERT都能转换时间:

SELECT CONVERT(DateTime,'2015-10-29') --输出 2015-10-29 00:00:00.000 SELECT CAST('2015-10-29' AS DateTime) --输出 2015-10-29 00:00:00.000

CAST和CONVERT的区别和用法

   但是时间转字符串,CAST没有CONVERT这么多花样:
   
   SELECT CONVERT(varchar,GETDATE(),5) --输出 29-10-15
   SELECT CONVERT(varchar,GETDATE(),111) --输出 2015/10/29
   SELECT CONVERT(varchar,GETDATE(),1) --输出 10/29/15
   SELECT CAST(GETDATE() AS varchar) --输出 10 29 2015 2:51PM

CAST和CONVERT的区别和用法

style的值和对应的输出格式如下:

   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 意大利 ddmmyy
   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 美国 mmddyy
   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 规范 yyyymmdd hh:mm:ss[.fff]
   21 或 121 (*) ODBC 规范(带毫秒) yyyymmdd hh:mm:ss[.fff]
   126(***) ISO8601 yyyymmdd Thh:mm:ss:mmm(不含空格)
   130* 科威特 dd mon yyyy hh:mi:ss:mmmAM
   131* 科威特 dd/mm/yy hh:mi:ss:mmmAM

金笔头博客, 版权所有丨如未注明 , 均为原创, 转载请注明CAST和CONVERT的区别和用法
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(2)个小伙伴在吐槽
  1. What's up Dear, are you actually visiting this web site on a regular basis, if so then you will absolutely get pleasant know-how.
    fausse ugg2016-01-08 04:09 Reply Windows 7 | 未知浏览器
  2. Thanks for sharing, this is a fantastic blog article. Keep writing.
    hillary scott2016-01-02 07:35 Reply Windows XP | Firefox 3.5.3