我有两个下拉列表 - 一年零一个月。如果记录存在整个月,我必须打印gridview。为此,我有以下代码。我知道我的SQL查询是完全错误的。
con.Open();
//count dates
string cmd = "SELECT COUNT(EXTRACT(DATE FROM Duty_Date)) FROM DoctorActivity WHERE MONTH=@MONTH AND YEAR=@YEAR AND ([User_Id]=@User_Id)";
SqlCommand commd = new SqlCommand(cmd, con);
commd.Parameters.AddWithValue("@User_Id", DropDownList1.Text);
commd.Parameters.AddWithValue("@MONTH", DropDownList2.Text);
commd.Parameters.AddWithValue("@YEAR", DropDownList3.Text);
int dateCount = (int)commd.ExecuteScalar();
if (dateCount >= 30)
{
//show computer id and status in gridview
GridView1.DataBind();
GridView1.Visible = true;
}
我还是处理SQL查询的新手。请帮忙。提前谢谢。
答案 0 :(得分:1)
Extract
是MySql函数,在Sql server 2008中提取datepart你可以使用
SELECT CONVERT(date, getdate())
或者如果您使用的是旧版本,则可以使用
SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, @your_date))
所以你必须将你的查询改为这样的
SELECT COUNT(distinct convert(date,Duty_Date)) FROM DoctorActivity WHERE MONTH=@MONTH AND YEAR=@YEAR AND [User_Id]=@User_Id
如果在duty_date字段中有重复,请使用distinct
答案 1 :(得分:1)
您必须使用CONVERT(date, yourdate)
在sql server中提取日期部分,在此查询中更改日期提取部分
SELECT COUNT(convert(date,Duty_Date)) FROM DoctorActivity