解决方案 »

  1.   

     and (CONVERT(date, oh.CREATE_DATE, 23)>=CONVERT(date, '201203017', 23) 
    and CONVERT(date, oh.CREATE_DATE, 23)<=CONVERT(date, '201203017', 23))用convert报错,
    消息 241,级别 16,状态 1,第 1 行
    从字符串转换日期和/或时间时,转换失败。

      

  2.   

    具体用法
    http://www.w3school.com.cn/sql/func_convert.asp
      

  3.   

    定义和用法
    CONVERT() 函数是把日期转换为新数据类型的通用函数。
    CONVERT() 函数可以用不同的格式显示日期/时间数据。
      

  4.   

    你这样的数据貌似不规则.需要进行一些转换.以下仅仅是针对你目前的数据进行的转换.不排除你还存在其他什么格式的数据.
    create table tb(col varchar(20))
    insert into tb values('2012-03-18')
    insert into tb values('20120318')
    insert into tb values('201203181513')
    insert into tb values('2012-03-18 15:13')
    goselect col,col_time = (case when len(col) > 8 and charindex('-',col) = 0
                then cast(substring(col,1,4) + '-' + substring(col,5,2) + '-' + substring(col,7,2) + ' ' + substring(col,9,2) + ':' + substring(col,11,2) as datetime)
                else cast(col as datetime)
           end)
    from tbdrop table tb/*
    col                  col_time                                               
    -------------------- ------------------------------------------------------ 
    2012-03-18           2012-03-18 00:00:00.000
    20120318             2012-03-18 00:00:00.000
    201203181513         2012-03-18 15:13:00.000
    2012-03-18 15:13     2012-03-18 15:13:00.000(所影响的行数为 4 行)
    */
      

  5.   

    可以用between and 啊。我这么做过、lz可以试试、
      

  6.   

    col                  col_time                                               -------------------- ------------------------------------------------------ 2012-03-18           2012-03-18 00:00:00.00020120318             2012-03-18 00:00:00.000201203181513         2012-03-18 15:13:00.0002012-03-18 15:13     2012-03-18 15:13:00.000需要把col_time varchar类型 更改为datatime 类型怎么操作
      

  7.   

    select CAST(date1  as date) from dbo.date11
      

  8.   

    select CAST(date1 as date) from dbo.date11