我对请求有一个奇怪的麻烦。
我有一个名为'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时,它可以正常工作。
我真的不知道问题出在哪里......你有什么想法吗?
答案 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)