日期:2014-05-18  浏览次数:20508 次

SQL 日期的查询
我有个表A,里面有个列B。
列B的格式是Varchar(16),存放的是日期,日期格式都是 (YY-MM-DD),比如2011年11月11日,存的格式为(11-Nov-11)。

查询的传参值C的格式是(2011-11-31),就是(YYYY-MM-DD)。

我想对这列的时间范围进行查询,也就是 列B的日期要小于值C的结果。
请问写这个语句呢??

------解决方案--------------------
SQL code
set language us_english
select convert(datetime,'11-Nov-11',120)
set language 简体中文

/*
-----------------------
2011-11-11 00:00:00.000

(1 行受影响)
*/

------解决方案--------------------
SQL code
set language us_english
select * from tb where convert(datetime,'11-Nov-11',120)>'2011-11-30'
set language 简体中文

------解决方案--------------------
正确的是这样的:
SQL code

表如下:
 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