C#.Net 1.1的问题。
如何使用DateTime比较对DataTable执行选择操作,并且仍然避免System.DateTime - System.String不匹配,同时使此比较适用于其他国家/地区的日期格式。
string strSel = String.Format("LAST_QUEUED > '{0}'", DateTime.Now);
DataRow[] drArr = DataSetX.TableX.Select(strSel);
LAST_QUEUED起源于美国的Oracle DateTime字段,读入DateTime类型的等效类型DataSet表字段。以上选择在西班牙完成。
在.Net 1.1中,我使用'{0}'和.Net 4.0#{0}#。但是,当我们在西班牙运行.Net 1.1版本时,我收到一个错误,“无法对System.DateTime和System.String执行>操作。”(有意义)。如果我仍然使用.Net 1.1转换为#{0} #formaterter,那么我得到“字符串未被识别为有效的DateTime”,因此格式化程序可能在版本之间发生了变化。
答案 0 :(得分:0)
更改
String.Format("LAST_QUEUED > '{0}'", DateTime.Now);
要
String.Format("LAST_QUEUED > '{0}'", " ' "
+DateTime.Now.ToString("dd/MM/yyyy")+ " '";
答案 1 :(得分:0)
我最终选择的解决方案是在System.Globalization命名空间中使用CultureInfo.InvariantCulture.DateTimeFormat格式化程序。
string strSel = String.Format(CultureInfo.InvariantCulture.DateTimeFormat, "LAST_QUEUED > '{0}'", DateTime.Now);
DataRow[] drArr = DataSetX.TableX.Select(strSel);