C# 做一个数据表。选择一个日期时间,避免多个国家/地区的日期时间字符串不匹配?

C# 做一个数据表。选择一个日期时间,避免多个国家/地区的日期时间字符串不匹配?,c#,.net,datetime,datatable,C#,.net,Datetime,Datatable,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源于Oracl

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类型的等效类型数据集表字段。上面的选择是在西班牙完成的

在.NET1.1中,我使用“{0}”,在.NET4.0中使用“{0}”。然而,当我们在西班牙运行.NET1.1版本时,我得到一个错误,“不能对System.DateTime和System.String执行>操作。”(有意义)。如果我转换为仍然使用.Net 1.1的#{0}#格式化程序,则会得到“字符串未被识别为有效的日期时间”,因此可能格式化程序在不同版本之间发生了更改。

Change

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


我最终选择的解决方案是在System.Globalization命名空间中使用CultureInfo.InvariantCulture.DateTimeFormat格式化程序

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

请参阅:

try
String.Format(“上次排队>'{0}'”,““+DateTime.Now.ToString”(“dd/MM/yyyy”)+”;
还显示{0}中字符串的格式很高兴听到它的帮助..will把它作为答案接受我的进一步思考,这不是比较字符串,而不是日期时间,从而给人一种选择的错觉吗?如果你需要比较日期时间和字符串,你需要把它转换成字符串,但当它是德国机器时,日期仍然自动转换成dd.MM.yyyy。
string strSel = String.Format(CultureInfo.InvariantCulture.DateTimeFormat,    "LAST_QUEUED > '{0}'", DateTime.Now);
DataRow[] drArr = DataSetX.TableX.Select(strSel);