在SqlCommand中转换数据库列格式

时间:2012-11-30 18:52:26

标签: sql sql-server vb.net sql-server-2005

在我的SQL Server 2005数据库的SELECT命令中,我需要将OrderDelDateTime列(采用datetime格式)转换为日期格式,以便我可以选择所有与今天的日期无关的行。

这就是我所拥有的:

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

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

我正在使用VB.Net。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

cmd = New Data.SqlClient.SqlCommand(String.Format("SELECT * FROM [Orders] where [OrderDelDateTime] >= {0} and  [OrderDelDateTime] < {1}", Now.Date, Now.Date.AddDays(1)), conn)