SQL查询没有硬编码日期时间值

时间:2013-11-06 23:03:22

标签: .net sql

我正在使用.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:

public void executeQuery(string query)

2 个答案:

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

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