String.Format中的MS SQL DATEPART

时间:2016-03-15 14:59:04

标签: c# sql asp.net

我在String.Format中有这个MS SQL查询:

    string sqlCommandx = String.Format("SELECT CASE WHEN sum(d1) > 0 THEN sum(n1)/sum(d1) ELSE null END as metricScore1 FROM DataBridgeStage Where programID={0} and DATEPART(m,reportingDate) = {1} and DATEPART(yyyy,reportingDate) = {2}",
            ProgramID, month, year);

我收到错误消息:SQL逻辑错误或缺少数据库\ r \ n否这样的列:m。我的语法有问题吗?

2 个答案:

答案 0 :(得分:0)

我终于得到了修复。但我要感谢@Damien_The_Unbeliever。我并不认为这是一个SQLite问题。在这种情况下,我使用了SQLite语法。这是语法:

string sqlCommandx = String.Format("SELECT CASE WHEN sum(d1) > 0 THEN sum(n1)/sum(d1) ELSE null END as metricScore1 FROM DataBridgeStage Where programID={0} and strftime('%m',reportingdate) = '{1}' and strftime('%Y',reportingdate)  = '{2}'",
        ProgramID, month, year);

答案 1 :(得分:-2)

使用String.Format的正确形式是:

String.Format("{0} {1}",one,two);