>>>>Hi,
>>>>
>>>>I'm trying to construct a DataTable.Select filter expression based on a DateTime comparison. Something like:
>>>>string ds = DateTime.Now.ToString();
>>>>string s = "BackupType=1 AND BackupFinishDate < Convert('" + ds + "','System.DateTime')";
>>>>DataRow[] drs = dt.Select(s, "BackupFinishDate DESC");
>>>>The Select gives a FormatException with "String was not recognized as a valid DateTime".
>>>>The resulting s in the select looks like this:
>>>>"BackupType=1 AND BackupFinishDate < Convert('22/09/2007 17:02:31','System.DateTime')"
>>>>
>>>>How do I get this to work?
>>>>TIA,
>>>>Viv
>>>
>>>Viv,
>>>No need for a convert.
>>>
>>>
>>>string s = String.Format(
>>> "BackupType=1 AND BackupFinishDate < '{0}'",
>>> DateTime.Now.ToString("u")
>>> );
>>>
>>>PS: ToString() would work too. I like to use universal formats.
>>
>>Hi,
>>Well ToString() doesn't work (same error). ToString("u") avoids the error (but, as is, returns the wrong results because there's no time zone conversion). ToString("s") seems to be the answer ?
>>Thx,
>>Viv
>
>Maybe, or convert to ToUniversalTime() first?
t.ToUniversalTime().ToString("u") and t.ToString("s") both work. So do you see any benefit in using the former?
Regards,
Viv