3

SELECT我的 SQL Server 2005 数据库的命令中,我需要将OrderDelDateTime列(datetime格式为)转换为日期格式,以便我可以选择具有今天日期的所有行,而不管时间如何。

这是我所拥有的:

cmd = New Data.SqlClient.SqlCommand("SELECT * FROM [Orders] where [OrderDelDateTime] = '" + Now.Date + "'", conn)

显然,这会返回零结果,因为11/30/2012 5:30:00 PM(in db) 不等于Now.Date( 11/30/2012)。

我正在使用 VB.Net。

4

2 回答 2

4

像这样进行查询:

select *
from Orders
where OrderDelDateTime between @Date1 and @Date2

然后从 C# 中,传递以下两个参数:

cmd.Parameters.AddWithValue("@Date1", Now.Date);
cmd.Parameters.AddWithValue("@Date2", Now.Date.AddDays(1).AddMilliseconds(-1));

SQL小提琴:http ://sqlfiddle.com/#!3/92105/1

于 2012-11-30T19:39:28.413 回答
1
cmd = New Data.SqlClient.SqlCommand(String.Format("SELECT * FROM [Orders] where [OrderDelDateTime] >= {0} and  [OrderDelDateTime] < {1}", Now.Date, Now.Date.AddDays(1)), conn)
于 2012-11-30T20:44:44.207 回答