SQL中CONVERT转化函数的用法

    技术2022-05-11  113

    SQL中CONVERT转化函数的用法

    CONVERT的使用方法:

    格式:CONVERT(data_type,expression[,style])

    说明:此样式一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)相互转换的时候才用到.

    例子:SELECT CONVERT(varchar(30),getdate(),101) now结果为now---------------------------------------09/15/2001

    /

    style数字在转换时间时的含义如下

    -------------------------------------------------------------------------------------------------Style(2位表示年份) | Style(4位表示年份) | 输入输出格式 -------------------------------------------------------------------------------------------------- | 0 or 100 | mon dd yyyy hh:miAM(或PM) -------------------------------------------------------------------------------------------------1 | 101 | mm/dd/yy -------------------------------------------------------------------------------------------------2 | 102 | yy-mm-dd -------------------------------------------------------------------------------------------------3 | 103 | dd/mm/yy -------------------------------------------------------------------------------------------------4 | 104 | dd-mm-yy -------------------------------------------------------------------------------------------------5 | 105 | dd-mm-yy -------------------------------------------------------------------------------------------------6 | 106 | dd mon yy -------------------------------------------------------------------------------------------------7 | 107 | mon dd,yy -------------------------------------------------------------------------------------------------8 | 108 | hh:mm:ss -------------------------------------------------------------------------------------------------- | 9 or 109 | mon dd yyyy hh:mi:ss:mmmmAM(或PM)-------------------------------------------------------------------------------------------------10 | 110 | mm-dd-yy -------------------------------------------------------------------------------------------------11 | 111 | yy/mm/dd -------------------------------------------------------------------------------------------------12 | 112 | yymmdd -------------------------------------------------------------------------------------------------- | 13 or 113 | dd mon yyyy hh:mi:ss:mmm(24小时制) -------------------------------------------------------------------------------------------------14 | 114 | hh:mi:ss:mmm(24小时制) -------------------------------------------------------------------------------------------------- | 20 or 120 | yyyy-mm-dd hh:mi:ss(24小时制) -------------------------------------------------------------------------------------------------- | 21 or 121 | yyyy-mm-dd hh:mi:ss:mmm(24小时制) -------------------------------------------------------------------------------------------------

    在SQL中使用convert 函数进行日期的查询

    曾经遇到这样的情况,在数据库的Meeting表中有PublishTime (DateTime,8)字段,用来存储一个开会时间,在存入时由于要指明开会具体时间,故格式为yyyy-mm-dd hh:mm:ss,而我们查询时是通过yyyy-mm-dd来进行的,即查询某一天的所有会议信息,这样如果通过select * from Meeting where PublishTime=@PublishTime (参数@PublishTimeyyyy-mm-dd格式)语句进行查询将无法得到正确结果,比如我们要查询2004121日的会议信息,在输入2004-12-01时就不能得到查询结果,而这种查询又不能要求输入具体的hh:mm:ss.

        此时我们需要使用convert函数,它可以将一种数据类型的表达式转换为另一种数据类型的表达式.此处我们先将数据库内的datetime类型转换为char类型,由于输入的参数是10位的,所以写成

     select * from Meeting where convert(varchar(10),PublishTime,121))=@PublishTime,这样在查询时数据库得到参数后先自动将数据库内的信息转换为yyyy-mm-dd格式的10位字符,只要与参数相同即可返回查询结果.convert中的121是指将datetime类型转换为char类型时获得包括世纪位数的4位年份。

    或者用CONVERT(DATETIME, PublishTime, 112)

    最新回复(0)