我有个表A,里面有个列B。
列B的格式是Varchar(16),存放的是日期,日期格式都是 (YY-MM-DD),比如2011年11月11日,存的格式为(11-Nov-11)。查询的传参值C的格式是(2011-11-31),就是(YYYY-MM-DD)。我想对这列的时间范围进行查询,也就是 列B的日期要小于值C的结果。
请问写这个语句呢??
列B的格式是Varchar(16),存放的是日期,日期格式都是 (YY-MM-DD),比如2011年11月11日,存的格式为(11-Nov-11)。查询的传参值C的格式是(2011-11-31),就是(YYYY-MM-DD)。我想对这列的时间范围进行查询,也就是 列B的日期要小于值C的结果。
请问写这个语句呢??
select convert(datetime,'11-Nov-11',120)
set language 简体中文/*
-----------------------
2011-11-11 00:00:00.000(1 行受影响)
*/
select * from tb where convert(datetime,'11-Nov-11',120)>'2011-11-30'
set language 简体中文11越没有31天
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