总结CONVERT的使用

 前端时间,执行写好的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的使用

时间: 2024-11-02 02:21:00

总结CONVERT的使用的相关文章

C#中Convert和parse的区别

Convert.ToInt32()与int.Parse()的区别(1)这两个方法的最大不同是它们对null值的处理方法: Convert.ToInt32(null)会返回0而不会产生任何异常,但int.Parse(null)则会产生异常. 没搞清楚Convert.ToInt32和int.Parse()的细细微区别时千万别乱用,否则可能会产生无法预料的结果,举例来说:假如从url中取一个参数page的值,我们知道这个值是一个int,所以即可以用Convert.ToInt32(Request.Que

538. Convert BST to Greater Tree 二叉搜索树转换为更大树

Given a Binary Search Tree (BST), convert it to a Greater Tree such that every key of the original BST is changed to the original key plus sum of all keys greater than the original key in BST. Example: Input: The root of a Binary Search Tree like thi

leetcode 109 Convert Sorted List to Binary Search Tree

题目连接 https://leetcode.com/problems/convert-sorted-list-to-binary-search-tree/ Convert Sorted List to Binary Search Tree Description Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST. /** * De

【翻译自mos文章】将Oracle 12c数据库从标准版convert到企业版

将Oracle 12c数据库从标准版convert到企业版 来源于: How to Convert Oracle Database 12c from Standard to Enterprise Edition ? (文档 ID 2046103.1) APPLIES TO: Oracle Database - Enterprise Edition - Version 12.1.0.1 and later Information in this document applies to any pl

Sql Server 中利用Convert 函数转换Datetime 到 String

CONVERT(varchar(10), date, 23) 1    02/22/06            CONVERT(varchar(10), date, 1) 0 Feb 22 2006 4:26PM CONVERT(CHAR(19), CURRENT_TIMESTAMP, 0) 1 02/22/06 CONVERT(CHAR(8), CURRENT_TIMESTAMP, 1) 2 06.02.22 CONVERT(CHAR(8), CURRENT_TIMESTAMP, 2) 3 2

LeetCode OJ - Convert Sorted Array/List to Binary Search Tree

虚函数使用的时机 为什么虚函数不总是适用? 1. 虚函数有事会带来很大的消耗: 2. 虚函数不总是提供所需的行为: 3. 当我们不考虑继承当前类时,不必使用虚函数. 必须使用虚函数的情况: 1. 当你想删除一个表面上指向基类对象,实际却是指向派生类对象的指针,就需要虚析构函数. LeetCode OJ - Convert Sorted Array/List to Binary Search Tree,布布扣,bubuko.com LeetCode OJ - Convert Sorted Arra

Sql 中常用日期转换Convert(Datetime)

CONVERT(data_type,expression[,style]) convert(varchar(10),字段名,转换格式) 说明:此样式一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)相互转换的时候才用到. 语句 结果SELECT CONVERT(varchar(100), GETDATE(), 0) 07 15 2009 4:06PMSELECT CONVERT(varchar(100), GETD

Convert Sorted Array to Binary Search Tree

Given an array where elements are sorted in ascending order, convert it to a height balanced BST. public TreeNode sortedArrayToBST(int[] num) { if (num.length == 0) { return null; } TreeNode head = helper(num, 0, num.length - 1); return head; } publi

[LeetCode] Convert BST to Greater Tree

Given a Binary Search Tree (BST), convert it to a Greater Tree such that every key of the original BST is changed to the original key plus sum of all keys greater than the original key in BST. Example: Input: The root of a Binary Search Tree like thi

convert in ubuntu

$convert -resize 320x256 woman.bmp woman320x256.png $identify -verbose woman320x256.png Image: woman320x256.png  Format: PNG (Portable Network Graphics)  Class: DirectClass  Geometry: 205x256+0+0  Resolution: 37.79x37.79  Print size: 5.42472x6.77428