1

我正在使用 .NET 编写 SQL 查询以获取以下数据:

DataReader d = null;
d.executeQuery("select * from table where updated_date >= '11/6/2013 12:00:00'");

我不想硬编码日期时间。如何初始化字符串并插入到查询中?我希望它是

Datetime value = new Datetime(2013, 11, 6, 12, 0, 0);
select * from table where updated_date >= 'value'"

这可能吗?

限制是我有一组给定的 API 来查询数据库和一个用户定义的 readerobject。这是我的查询 API:

公共无效执行查询(字符串查询)

4

2 回答 2

3

我会使用 SqlCommand 类来完成这项工作:

SqlCommand Myquery = new SqlCommand("select * from table where updated_date >= @MyDate");

Myquery.Parameters.Add(new SqlParameter("MyDate", SqlDbType.DateTime));

Myquery.Parameters["MyDate"].Value = DateTime.Now;
于 2013-11-06T23:17:16.703 回答
1
var date = new DateTime(2013, 11, 6, 12, 0, 0);
var query = string.Format("select * from table where updated_date >= '{0}'",
                                  date.ToString("MM'/'d'/'yyyy hh:mm:ss"));

请注意,我指定我希望 / 作为使用撇号的分隔符。如果您只使用 / 它们将被当前区域性的日期分隔符替换。所以在我的机器上

date.ToString("MM/d/yyyy hh:mm:ss")

返回 11-6-2013 12:00:00

另请注意,我使用的是单一d格式字符串。这将返回小于 10 个月的单个数字。

于 2013-11-07T00:18:08.043 回答