从datetimepicker值获取特定月份或日期的记录到存储过程

时间:2016-10-15 17:30:24

标签: c# sql sql-server datetime stored-procedures

我想从SQL Server数据库中获取所有记录;我正在使用Entity Framework和C#。

我使用DateTimePicker值传递给存储过程,并且当我从datetime选择器中选择数据时,存储过程期望datetime对象它获得整个字符串但我只需要date。我尝试使用datetime对象但没有成功将该值放到datetime对象dt

现在的问题是,当我尝试更改datetimepicker的格式时,它将其转换为字符串,但我需要datetime obj但只需要日期

 DateTime dt = dateTimePicker1.Value.Date;
 dataGridView1.DataSource = dbobj.sp_Select_Expense_Month(dt).ToList();

如何将某些内容传递给存储过程?请帮我 为所有评论员祈祷

我尝试了很多解决方案,但最接近的是在存储过程中使用类似查询,但它没有显示任何结果,但是在gridview中调用了标题,甚至当我在SQL Server Management Studio中尝试它时,它显示相同的列名称没有任何记录

ALTER PROCEDURE sp_Select_Expense_Month
    @dt dateTime
AS
BEGIN
    SELECT * 
    FROM Expense 
    WHERE [DateTime] LIKE '@dt%'
END
GO

在数据库结构中只有日期类型

1 个答案:

答案 0 :(得分:3)

即使在time

,您也可以从datetime修剪sql
SELECT * FROM Expense WHERE [DateTime] = cast(@dt as date)

确保您传递有效的日期时间格式