【问题标题】:Query to select all events of table that correspond to selected month查询以选择与所选月份对应的表的所有事件
【发布时间】:2016-06-10 02:28:39
【问题描述】:

我有一个 dateTimePicker 和一个我希望 DGV 填充一个查询,该查询从 DB (SQL CE) 中选择与 dateTimePicker 上所选月份对应的所有条目。

这就是逻辑

SELECT FROM Employees WHERE (@MonthEnd or @MonthEnd2) = dateTimePicker1.SelectedMonth

@MonthEnd 或 @MonthEnd2 的值是日期时间。

如何首先在 dateTimePicker 上选择当前月份?

在我应该将日期时间从 DB 转换为字符串之后?还是整数?那么我应该如何只选择数据的月份部分来与日历的选定月份进行比较呢?

编辑:感谢@Hogan,我能够提出以下代码:(希望它对像我一样有需要的人有所帮助(我要求使用日期时间选择器,但改用日历)。

string constringF = @"Data Source=|DataDirectory|\cadastramentodb.sdf;Persist Security Info=False";
            string QueryF = "select * from Funcionarios  where datepart(month, datafimcontrato) = @mes ";
            SqlCeConnection conDataBaseF = new SqlCeConnection(constringF);
            SqlCeCommand cmdDataBaseF = new SqlCeCommand(QueryF, conDataBaseF);
            cmdDataBaseF.Parameters.Add("@mes", SqlDbType.Int).Value = Convert.ToInt32(monthCalendar1.SelectionStart.Month);

【问题讨论】:

  • 您确实意识到此 SQL 将选择该月份的任何条目,完全忽略年份,对吗?因此,如果您在日期选择器中选择 8 月,您将获得 2015 年 8 月、2014 年、2013 年 8 月的记录...
  • 是的,我这样做了,但这满足了我的需求,如果我需要当前日历年甚至几天,我可以及时使用类似的方法。感谢您的提示。

标签: c# sql datagridview


【解决方案1】:

有一个函数叫做月。你可以这样使用它:

 SELECT * 
 FROM Emp
 WHERE MONTH(datefieldintable) = @MonthInput

【讨论】:

  • 它就像一个魅力!非常感谢您的有用回答。我将用我提出的实际代码更新问题,因为我目前使用的是 SQL CE,查询略有不同。再次感谢!
猜你喜欢
  • 2014-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-19
  • 1970-01-01
  • 2016-02-05
  • 1970-01-01
  • 2023-03-22
相关资源
最近更新 更多