将日期时间转换为简单日期

本文关键字:日期 简单 时间 转换 | 更新日期: 2023-09-27 18:31:51

我在将字符串格式的变量(从窗体上的 DateTime 选择器控件)转换为简单日期时遇到问题。

我正在尝试转换,因为我收到以下错误消息:

INVALID_FIELD: 'AND c.Status__c = "已关闭" AND c.Close_Date__c> 2013-07-01T00:00:00Z' ^'错误在行:1:列:326'过滤器的值 字段"Close_Date__c"的标准必须是日期类型,并且应该 不括在引号中

我试过了:

sQry += " AND c.Close_Date__c > " + DateTime.ParseExact(filterFromDate, "d", CultureInfo.InvariantCulture) + " AND c.Close_Date__c < " + DateTime.ParseExact(filterFromDate, "d", CultureInfo.InvariantCulture);

但它不接受它(编译器无法识别CultureInfo.

请问我哪里出错了?

更多信息:抱歉,我应该提到我们正在对引用 SalesForce 实例的 SalesForce 对象使用此查询

将日期时间转换为简单日期

添加System.Globalization,然后...

var date = DateTime.ParseExact(filterFromDate, "dd", CultureInfo.InvariantCulture);

已更新...

那这个呢(我做了很多假设...哪里

string filterFromDate = "2013-07-01T00:00:00Z";
sQry += " AND c.Close_Date__c > " + DateTime.Parse(filterFromDate).Date.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'sszzzzz") + " AND c.Close_Date__c < " + DateTime.Parse(filterFromDate).Date.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'sszzzzz");

或者更好的 SqlParameters

string filterFromDateStr = "2013-07-01T00:00:00Z";
//Just the date since we don't want to use the Time
var filterFromDate = DateTime.Parse(filterFromDateStr ).Date;
sQry += " AND c.Close_Date__c > @filterFromDate AND c.Close_Date__c < @filterFromDate";
IDbCommand cmd = connection.CreateCommand();
cmd.CommandTimeout = connection.ConnectionTimeout;
cmd.CommandText = sQuery;
cmd.Parameters.Add(new SqlParameter("@filterFromDate ",filterFromDate ));
md.Connection = connection;
var reader = cmd.ExecuteReader();