datetime怎么做月份查询

kvkensinb 2010-10-26 10:11:47
我表的数据如下:
日期 销售量
2010-7-13 1000
2010-8-3 1300
2010-8-26 800
2010-10-19 2300
用户会输入月份范围,如:2010-7到2010-9,SELECT 日期,销售量
FROM table where (日期>='2010-7' and 日期<='2010-9')但由于查询时候会提示从字符串转换为 datetime 时发生语法错误。请高手帮帮忙,谢谢


...全文
148 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
coleling 2010-10-26

--设用户输入的查询参数为@beginmonth和@endmonth,类型为字符串,格式为"2010-7"
DECLARE @sdate datetime, @edate datetime
SET @sdate = cast(@beginmonth+'-1' as datetime)
SET @edate = dateadd(d,-1,dateadd(m,1,cast(@endmonth+'-1' as datetime)))

查询的时候用FROM table where (日期>=@sdate and 日期<=@edate)
回复
zhangsuyunpk521 2010-10-26
[Quote=引用 8 楼 fpzgm 的回复:]
SQL code

--直接
cast(日期 as date) between '2010-7-1' and '2010-9-30'
[/Quote]
up
回复
fpzgm 2010-10-26

--直接
cast(日期 as date) between '2010-7-1' and '2010-9-30'
回复
chuanzhang5687 2010-10-26
create table a
(
time1 datetime,
num varchar(10)
)
insert into a values('2010-7-13','1000')
insert into a values('2010-8-3','1300')
insert into a values('2010-8-26','800')
insert into a values('2010-10-19','2300')
select * from a
select * from a where time1 between '2010-7-1' and '2010-9-30'
回复
dawugui 2010-10-26
select * from tb where convert(varchar(7),日期,120) between '2010-07' and '2010-09'
回复
FlySQL 2010-10-26
SELECT 日期,销售量  
FROM table where convert(varchar(7),日期,120)>='2010-07' and convert(varchar(7),日期,120)<='2010-09'
回复
sql_cctv 2010-10-26
where 日期>='2010-7-1' and 日期<'2010-10-1'
回复
FlySQL 2010-10-26
SELECT 日期,销售量  
FROM table where convert(varchar(7),日期,120)>='2010-07' and convert(varchar(7),日期,120<='2010-09'
回复
lcqtgb 2010-10-26

select 1 from tb where datepart(yyyy,dates) between '2009' and '2010'
回复
xuam 2010-10-26
convert (char(7),日期,120)
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2010-10-26 10:11
社区公告
暂无公告