• [转]SQL中CONVERT转化函数的用法


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

     

     

    <!--StartFragment-->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
    小时制
    )
    -------------------------------------------------------------------------------------------------

  • 相关阅读:
    写给自己的话
    软件开发之技能梳理
    《创新者的窘境》读书笔记
    我的四年踩坑史以及思考
    认识问题和求解问题的一种思考框架
    《时间的秩序》读书笔记
    从JSON中自动生成对应的对象模型
    考考你:一道题引发的小思考
    哈!如果一生只如花样短暂
    使用正则表达式抽取所需文本
  • 原文地址:https://www.cnblogs.com/scgw/p/624851.html
Copyright © 2020-2023  润新知