从日期字段中计算日期

本文关键字:日期 计算 字段 | 更新日期: 2023-09-27 17:51:18

我有两个下拉列表-一个是一年,一个是一个月。如果记录存在于整个月,我必须打印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查询。请帮助。

从日期字段中计算日期

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

您必须使用CONVERT(date, yourdate)在sql server中提取日期部分,更改查询中的日期提取部分,如下所示

SELECT COUNT(convert(date,Duty_Date)) FROM DoctorActivity