码迷,mamicode.com
首页 > 其他好文 > 详细

总结CONVERT的使用

时间:2014-06-28 14:42:40      阅读:274      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   get   使用   数据   

 前端时间,执行写好的SQL时,出现了"从char数据类型到datetime数据类型的转换导致datetime值越界"。经过自己的折腾,发现数据表中的WarningTime为NULL,所以这里的转化就出现了问题,同时在此测试了一下不为datetime的char类型的数据进行CONVERT时,也会报错。所以:当使用CONVERT对日期类型的数据进行转换为B类型,除了注意B类型的数据具备日期类型数据的特性外,也要考虑到NULL的情况,这里的B指的是其他格式类型.

  出现问题的代码:

select left(convert(varchar(10),WarnigTime,120),7) as YearMonth,
    MaintenanceArea,
    Company,
    sum(WaN) as NewAddNum  
from 
    ( select CONVERT(varchar(50),WarnigTime,23)as WarnigTime ,
           MaintenanceArea,
           Company,SUM(case when WarningID<>0 then 1 else 0 end) as WaN 
      from dbo.t_xdz_warning Wa,dbo.t_xdz_station St 
      where Wa.StationID=St.ID 
      group by MaintenanceArea,Company,WarnigTime )as t 
group by left(convert(varchar(10),WarnigTime,120),7),MaintenanceArea,Company
order by YearMonth desc             

  注:这里使用了LEFT函数:

LEFT(<character_expression>,<integer_expression>)
----返回character的左边的前integer长度的字符

----那么,对应的可以知道有RIGHT函数
RIGHT(<character_expression>,<integer_expression>)
--返回character的右边的后integer长度的字符

  在此借这个机会总结一下CONVERT的使用.

  CONVERT()函数是把日期类型转化为新数据类型的通用函数.

使用:

CONVERT(data_type(length),data_to_be_converted,style)

  这里可以使用的style的值

StyleID                    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 

  使用举例:(把当前日期转换为不同的格式)

CONVERT(varchar(24),GETDATE(),100)

//显示为
 06 19 2014 11:00PM 

这里需要注意:

当对datetime等时间类型的数据进行转换时,可以使用适当的长度的char或varchar数据类型获取需要的日期部分.  

总结CONVERT的使用,布布扣,bubuko.com

总结CONVERT的使用

标签:des   style   blog   get   使用   数据   

原文地址:http://www.cnblogs.com/cdzTec/p/3798358.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!