做一个数据表.选择一个日期时间,避免多个国家的日期时间字符串不匹配

本文关键字:一个 时间 日期 国家 不匹配 字符串 数据表 选择 | 更新日期: 2023-09-27 17:49:22

关于c# . net 1.1的问题。

如何使用DateTime比较在DataTable上执行Select操作,并且仍然避免System。DateTime -系统。字符串不匹配,而在其他国家的日期格式中进行比较。

string strSel = String.Format("LAST_QUEUED > '{0}'", DateTime.Now);
DataRow[] drArr = DataSetX.TableX.Select(strSel);

LAST_QUEUED起源于美国的Oracle DateTime字段,读入一个DateTime类型的等效类型化数据集表字段。以上选择是在西班牙完成的。

在。net 1.1中,我用"{0}"和在。net 4.0 #{0} #。然而,当我们在西班牙运行。net 1.1版本时,我得到一个错误,"Cannot perform> operation on System "。日期时间和系统。(有意义)。如果我仍然使用。net 1.1转换为#{0}#格式化器,那么我得到"String未被识别为有效的DateTime " ,所以可能格式化器在不同版本之间发生了变化。

做一个数据表.选择一个日期时间,避免多个国家的日期时间字符串不匹配

变化

String.Format("LAST_QUEUED > '{0}'", DateTime.Now);

String.Format("LAST_QUEUED > '{0}'", " ' " 
+DateTime.Now.ToString("dd/MM/yyyy")+ " '";

我最终选择的解决方案是在系统中使用CultureInfo.InvariantCulture.DateTimeFormat格式化器。全球化名称空间。

string strSel = String.Format(CultureInfo.InvariantCulture.DateTimeFormat,    "LAST_QUEUED > '{0}'", DateTime.Now);
DataRow[] drArr = DataSetX.TableX.Select(strSel);

见:https://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.invariantculture%28v=vs.110%29.aspx