日期条件不适用于我的应用程序,但适用于SQL Server

时间:2015-03-09 15:33:30

标签: c# sql-server date request

我对请求有一个奇怪的麻烦。 我有一个名为'DATE'的字段'datetime'的表。

这里有一个完全的例子:2015-03-09 00:00:00.000

我在我的应用程序(在C#中)执行这样的请求:'SELECT ... WHERE DATE BETWEEN datedeb AND datefin'

这是datedeb值的完全示例:09/03/2015

当我在我的应用程序中执行请求时,它根本不起作用,没有结果。

当我在SQL Server中复制请求(通过MessageBox.Show())时,它可以工作。

当我在我的应用程序中将datedeb和datefin更改为2015-03-09时,它不起作用。

当我更改SQL Server时,它可以正常工作。

我真的不知道问题出在哪里......你有什么想法吗?

3 个答案:

答案 0 :(得分:1)

像这样:

 SqlCommand command = new SqlCommand("Select * from whatever where Date Between @begin and @end");
 command.Parameters.Add(new SqlParameter("begin", yourbegin));
 command.Parameters.Add(new SqlParameter("end", yourEnd));
 ...

yourBegin和yourEnd的类型为DateTime ...

答案 1 :(得分:0)

尝试使用:

SqlCommand command = new SqlCommand("SELECT * FROM TABLE WHERE DATE BETWEEN @begin and @end");
command.Parameters.Add("@begin", SqlDbType.DateTime).Value = DateTime.Now;
command.Parameters.Add("@end", SqlDbType.DateTime).Value = DateTime.Now.AddDays(1);

我认为,如果您可以将参数作为DateTime类型发送,那么您最好不要处理区域设置问题。

答案 2 :(得分:0)

好吧,伙计们,我是一个非常愚蠢的男孩。 你知道问题在哪里吗?我忘了写我想在ConnectionString中使用的数据库。我有几个非常相似的数据库。 我的申请是在另一张桌子上搜索...... 我很傻! 非常感谢你的时间,你真棒,特别是@Florian Schmidinger 抱歉是愚蠢的哈哈