我有个表A,里面有个列B。
列B的格式是Varchar(16),存放的是日期,日期格式都是 (YY-MM-DD),比如2011年11月11日,存的格式为(11-Nov-11)。查询的传参值C的格式是(2011-11-31),就是(YYYY-MM-DD)。我想对这列的时间范围进行查询,也就是 列B的日期要小于值C的结果。
请问写这个语句呢??

解决方案 »

  1.   

    set language us_english
    select convert(datetime,'11-Nov-11',120)
    set language 简体中文/*
    -----------------------
    2011-11-11 00:00:00.000(1 行受影响)
    */
      

  2.   

    set language us_english
    select * from tb where convert(datetime,'11-Nov-11',120)>'2011-11-30'
    set language 简体中文11越没有31天
      

  3.   

    正确的是这样的:表如下:
     CREATE TABLE [dbo].[Table1] (
    [uid] [varchar] (5) COLLATE Chinese_PRC_CI_AS NULL ,
    [udate] [varchar] (16) COLLATE Chinese_PRC_CI_AS NULL 
     )
    ------------------
    数据如下:
    uid udate
    1 11-Nov-11
    2 12-Nov-11
    3 30-Nov-11
    4 01-Dec-11
    5 05-Dec-11
    -------------------
    查询语句如下:
    select * from Table1
    where convert(datetime,udate,120)>'2011-11-30'
    -------------------
    查询结果如下:
    4 01-Dec-11
    5 05-Dec-11