What is the best way to extract date from SQL Datetime field in C#.Net?
Using a DataReader there are several ways:
reader.GetDateTime(ColumnNumber)
(DateTime)reader[ColumnNumber]
Convert.ToDateTime(reader[ColumnName])
SqlCommand cmd = new SqlCommand("SELECT BeginDate FROM table_name ");
DateTime beginDate = (DateTime)cmd.ExecuteScalar();
If you're not using an ORM mapper / framework that is automatically translating the date-time formats, based on the database server's configuration, I'll assume that you're trying to do this manually. Also assuming you're using SQL Server.
Its not ideal, but better to make sure that you are getting the datetime out of the database in a known format (your database server might be configured for a different locale to your web/app server - for whatever reason)
Have a look at this article for the SQL Convert functionality:
CONVERT(data_type,expression,date Format style)
USA mm/dd/yy - select convert(varchar, getdate(), 1)
ANSI yy.mm.dd - select convert(varchar, getdate(), 2)
British/French dd/mm/yy - select convert(varchar, getdate(), 3)
... etc.
Once you've got your query data back, using the Convert static class:
Convert.ToDateTime(reader["DateColumn"])