问题描述
查询数据库中的timee时,如何限制查询的timee是本周的??请高手帮忙写下代码,非常十分以及及其感谢usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Web.UI.HtmlControls;usingSystem.Data.OleDb;publicpartialclass_Default:System.Web.UI.Page{protectedvoidPage_Load(objectsender,EventArgse){}protectedvoidbtntj_Click(objectsender,EventArgse){stringtext=string.Empty;if(rb1.Checked){text="就业政策、流程";}elseif(rb2.Checked){text="职业生涯规划";}elseif(rb3.Checked){text="简历制作、面试技巧";}elseif(rb4.Checked){text="权益保障";}elseif(rb5.Checked){text="就业心理障碍";}elseif(rb6.Checked){text=other.Text;}DateTimedt=System.DateTime.Now;TimeSpants=newTimeSpan(6,30,0);if((dt.TimeOfDay>ts)&&(dt.DayOfWeek==DayOfWeek.Thursday)){Response.Write("<script>alert('对不起,本周不能预约了')</script>");}else{stringstrconnection="provider=microsoft.jet.oledb.4.0;DataSource=C:\DocumentsandSettings\User\MyDocuments\VisualStudio2005\work\App_Data\cauwork.mdb";OleDbConnectioncusconnection=newOleDbConnection(strconnection);cusconnection.Open();DateTimestartWeek=dt.AddDays(1-Convert.ToInt32(dt.DayOfWeek.ToString("d")));//本周周一DateTimeendWeek=startWeek.AddDays(6);//本周周日stringtimee=DropDownList1.SelectedValue.ToString();stringsqlstring="selectcount(*)fromjobwhereDateDiff('d',zxsj,'"+timee+"')<7zxsj='"+timee+"'";OleDbCommandcommand=newOleDbCommand(sqlstring,cusconnection);inti=(int)command.ExecuteScalar();if(i>=2){Response.Write("<script>alert('请换个时间段预约')</script>");}else{stringstrcmd="insertintojob([name],xuehao,collage,tel,banji,mail,zxnr,zxsj,[time])values('"+name.Text+"','"+xuehao.Text+"','"+collage.Text+"','"+tel.Text+"','"+banji.Text+"','"+mail.Text+"','"+text+"','"+DropDownList1.SelectedItem.Text+"',#"+dt+"#)";OleDbCommandcmd=newOleDbCommand(strcmd,cusconnection);//向数据库插入记录cmd.ExecuteNonQuery();cusconnection.Close();Response.Write("<script>alert('预约成功')</script>");name.Text="";collage.Text="";tel.Text="";xuehao.Text="";banji.Text="";mail.Text="";other.Text="";//重置}}}protectedvoidbtncz_Click(objectsender,EventArgse){name.Text="";collage.Text="";tel.Text="";xuehao.Text="";banji.Text="";mail.Text="";}protectedvoidbtnck_Click(objectsender,EventArgse){Response.Redirect("see.aspx");}}
解决方案
解决方案二:
你用timee与系统时间判断下SQL:datediff(day,timee,getdate)>6
解决方案三:
Dateadd(wk,datediff(wk,0,getdate()),-1)Dateadd(wk,datediff(wk,0,getdate()),6)
解决方案四:
楼上的楼上的方法有些不能满足楼主的要求,他要求是本周的,而不是一周时间内的,如果当前时间是星期一怎么办?楼上的,很抱歉我看不懂,在datediff短处的星期数上使用dateadd,可能我学艺不深的缘故我觉得楼主的这个要求可以先使用datepart(Weekday,getdate())算出星期几,然后使用dateadd算出本周的时间范围,最后用timee去比较就行了应该还有更好的方法~~
解决方案五:
期待下文
解决方案六:
ALTERPROCEDURETest_GetPlansByWeek(@UserIduniqueidentifier,--用户ID@DateDateTime,--开始时间@WeekDayint--周几)AS/*SETNOCOUNTON*/BEGINDECLARE@WeekBegindatetimeSELECT@WeekBegin=DATEADD(day,-@WeekDay,@Date)--计算本周第一天的日期SELECT*FROMTestWHERE(UserId=@UserId)AND(DATEDIFF("d",@WeekBegin,BeginDate)<7ANDDATEDIFF("d",@WeekBegin,BeginDate)>=0)ORDERBYBeginDateEND
解决方案七:
select*from表wheredatediff(week,日期字段,getdate())=0
解决方案八:
本来datediff就有这个功能,是返回的“时间间隔”的数目,而不是3楼所想象的只机械考虑7天时间。2007/12/31和2008/1/1相差仍然是一年。不过用的时候要注意当前的时间设置每周第一天是星期天还是星期一。