加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

SQL函数Cast、Convert、Right

(2020-01-17 10:34:59)
标签:

sql

cast

convert

right

分类: 代码天地
SQL 函数Cast、Convert、Right
  

 一 CAST、CONVERT

    1 两者都可以转换数据类型,大部分的功能相同, 不同点在于:1) CAST是ANSI兼容,CONVERT则不是。2) 日期格式转换,CAST只是普通的,CONVERT有更多的格式。

  2 语法:

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

  3 示例:

       CAST(sales AS char(20))

  SELECT 'str' + 168    --错误

  SELECT 'str' + CAST(168 AS varchar)    --输出 str168

  SELECT 'str' + CONVERT(varchar,168)    --输出 str168

  4 CAST和CONVERT都可转换时间:

  SELECT CONVERT(DateTime,'2019-08-15')    --输出 2019-08-15 00:00:00.000

  SELECT CAST('2019-08-15' AS DateTime)    --输出 2019-08-15 00:00:00.000

  5 日期时间转字符串,CONVERT比CAST有更多的格式:

  SELECT CAST(GETDATE() AS varchar)    --输出 08 15 2019 8:16PM

  SELECT CONVERT(varchar,GETDATE(),5)    --输出 15-08-19
  SELECT CONVERT(varchar,GETDATE(),111)  --输出 2019/08/15
  SELECT CONVERT(varchar,GETDATE(),1)    --输出 08/15/19

二 Right

   1 语法:
      RIGHT(str,len) 返回字符串str 最右侧的n个字符。

   2 示例:
     RIGHT('football', 3) --输出 all

   3 原因
   之所以将Right和格式转换函数放到一起来说,是因为,C# WinForm 方式的 ListBox  有Sorted可设排序与否
  而网页格式的 ListBox则没有,它是依靠绑定的数据源来设定,因此后者会将月份的 10,11,12,与 1月,排列到一起的乱象,此时可以借助Right函数,前面补充空格或者0,来达到正确的排列顺序。

也就是将:

SELECT   cast(month as varchar ) 

改为:
SELECT  right('0'+cast(month as varchar ),2)

或者:
SELECT  right(' '+cast(month as varchar ),2)

之后插入到ListBox 就正确排列了.

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有