我正在使用.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)
答案 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。