0 out of 2 rated this helpful - Rate this topic

SqlDataReader.GetDateTime Method

Gets the value of the specified column as a DateTime object.

Namespace:  System.Data.SqlClient
Assembly:  System.Data (in System.Data.dll)
public override DateTime GetDateTime(
	int i
)

Parameters

i
Type: System.Int32
The zero-based column ordinal.

Return Value

Type: System.DateTime
The value of the specified column.

Implements

IDataRecord.GetDateTime(Int32)
IDataRecord.GetDateTime(Int32)
Exception Condition
InvalidCastException

The specified cast is not valid.

No conversions are performed; therefore, the data retrieved must already be a DateTime object.

Call IsDBNull to check for null values before calling this method.

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 3.5, 2.0, 1.0
Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ
this returns a DateTime with Kind == Unspecified
$0I'd venture to guess that most databases involved in world wide web applications these days store all of their SQL Server datetimes in UTC.  To prepare this datetime data for presentation, it needs to be converted into the user's local time zone.  The Kind property of DateTime is useful for converting between time zones, but the SqlDataReader.GetDateTime() method always returns a DateTime with Kind equal to DateTimeKind.Unspecified instead of DateTimeKind.Utc.$0 $0$0 $0 $0Currently, you have to do this in order to get a UTC date from SQL Server:$0 $0$0 $0 $0 $0$0 $0 $0
                            value = new DateTime(dr.GetDateTime(cellColumnIndex).Ticks, DateTimeKind.Utc);
$0
$0$0 $0 $0How about an overload where you can specify DateTimeKind?  like this...$0 $0$0 $0 $0 $0$0 $0 $0
                            value = dr.GetDateTime(cellColumnIndex, DateTimeKind.Utc);
$0
$0$0 $0 $0This optimization would remove the need to call the DateTime constructor twice, thus squeezing a bit more performance out of this call.  This could save a healthy chunk of time when pulling millions of rows!$0 $0$0 $0 $0$0 $0 $0$0 $0