I want know is there good way to detect Column DataType for Date field (NOT DateTime)?
This what currently I do:
formatedVal = Formatter.GetDateTime(val);
// which is NOT possible, but something equivalent am looking for
formatedVal = Formatter.GetDate(val);
formatedVal = val.ToString();
Nope. There is no
Date type, there is only
DateTime. If this is coming from a SQL Server 2008 table that uses a
date column, it will be mapped to
DateTime in .NET.
If you need to get at this information then you'll have to do it at the SQL level; by the time it's loaded into a
DataTable, it's too late.
I'm not positive about your requirements, but it looks like you might be able to get away with just checking for midnight and using a different format for that:
DateTime dt = (DateTime)val; return (dt == dt.Date) ? Formatter.GetDate(dt) : Formatter.GetDateTime(dt);