一个简单的数据库问题

yingxiongmingduan 2010-04-01 08:05:52
我一个日期控件也可以 COMBOX控件
当我选择控件里的日期是如:2010-03时
DGV里显示要显示以前的数据到这个月的数据也就是说
1、begindate:2010-02-22 enddate:2010-05-22
2、begindate:2010-03-01 enddate:2010-03-31
3、begindate:2010-05-11 enddate:2010-05-22
在这3条数据中筛选出:
1、begindate:2010-02-22 enddate:2010-05-22
2、begindate:2010-03-01 enddate:2010-03-31
...全文
84 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
悔说话的哑巴 2010-04-01
  • 打赏
  • 举报
回复
where convert(varchar(7),a.dBeginDate,120)<='" + cmbDutyPeriod.Value.ToString("yyyy-MM") + "' and convert(varchar(7),a.dEndDate,120)=>'" + cmbDutyPeriod.Value.ToString("yyyy-MM")+"'";
东那个升 2010-04-01
  • 打赏
  • 举报
回复
等77
yingxiongmingduan 2010-04-01
  • 打赏
  • 举报
回复
来看看啊?
yingxiongmingduan 2010-04-01
  • 打赏
  • 举报
回复
数据库里好写,但是c#里怎么写的?
where convert(varchar(7),a.dBeginDate,120)<='" + cmbDutyPeriod .Value.ToString("yyyy-MM")+ "'";
东那个升 2010-04-01
  • 打赏
  • 举报
回复
set @dt='2010-03'

select * from tb
where CAST(@dt+'-01' as datetime)>=begindate
or CAST(@dt+'-01' as datetime)>=enddate
yingxiongmingduan 2010-04-01
  • 打赏
  • 举报
回复
谢谢SQL77
SQL77 2010-04-01
  • 打赏
  • 举报
回复
SELECT * FROM TB WHERE CONVERT(VARCHAR(7),BEGINTIME,120)<='2010-03'
AND CONVERT(VARCHAR(7),ENDTIME,120)>='2010-03'
yingxiongmingduan 2010-04-01
  • 打赏
  • 举报
回复
好久没有写了 都忘的差不多了
yingxiongmingduan 2010-04-01
  • 打赏
  • 举报
回复
大家来看看啊
yingxiongmingduan 2010-04-01
  • 打赏
  • 举报
回复
比如说:条件是2010-03
有人请假 是2010-02-22到2010-05-22它已经包含了2010-03就应该显示出来
--小F-- 2010-04-01
  • 打赏
  • 举报
回复
是个什么判断标准?
yingxiongmingduan 2010-04-01
  • 打赏
  • 举报
回复
where convert(varchar(7),a.dBeginDate,120)='" + cmbDutyPeriod .Value.ToString("yyyy-MM")+ "'";
这样写就只能判断是不是当月的
yingxiongmingduan 2010-04-01
  • 打赏
  • 举报
回复
帮帮忙啊
yingxiongmingduan 2010-04-01
  • 打赏
  • 举报
回复
谢谢 哑巴,但是你那个只能判断一个啊
悔说话的哑巴 2010-04-01
  • 打赏
  • 举报
回复
convert(varchar(7),a.dBeginDate,120)
yingxiongmingduan 2010-04-01
  • 打赏
  • 举报
回复
麻烦各位了

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧