我似乎无法将sqldatatime.minvalue转换为datetime对象.
我试过了:
Datetime dt = Convert.ToDateTime(SqlDateTime.MinValue);
Run Code Online (Sandbox Code Playgroud)
这显然不起作用.
Jef*_*ata 149
无需转换. SqlDateTime有一个返回值的Value属性DateTime.
DateTime dt = SqlDateTime.MinValue.Value;
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 73
有什么理由不使用显式转换运算符?
DateTime dt = (DateTime) SqlDateTime.MinValue;
Run Code Online (Sandbox Code Playgroud)
这对我行得通:
using System;
using System.Data.SqlTypes;
class Test
{
static void Main()
{
DateTime dt = (DateTime) SqlDateTime.MinValue;
Console.WriteLine(dt);
}
}
Run Code Online (Sandbox Code Playgroud)
Ant*_*ram 17
您收到的答案向您展示了两种不同的转换价值的方法.一种是使用为SqlDateTimeto 定义的显式转换DateTime,另一种是访问实例.Value上的属性SqlDateTime,返回一个DateTime.
var date = theSqlDate.Value; // via property
var date = (DateTime)theSqlDate; // via explicit conversion
Run Code Online (Sandbox Code Playgroud)
有一些值得考虑的权衡.SqlDateTime通过值支持数据库中的空值的概念(DBNull,由另一个现在删除的答案引用)SqlDateTime.Null.如果您Value在"null"实例上访问该属性,您将遇到一个SqlNullValueException.另一方面,显式转换为DateTime会导致{January 1, 1900 12:00:00 AM}.您的代码中可能不需要这些结果.使用非null默认值覆盖数据库中的有效空条目可能与在运行时获取异常一样糟糕.
如果数据库中有可为空的列,并且如果您正在使用SqlDateTime,则可能需要以SqlDateTime.Null不同的方式显式测试和处理,然后使用哪种方法转换其他值可能无关紧要.
DateTime? date;
if (theSqlDate.Equals(SqlDateTime.Null))
date = null
else
date = theSqlDate.Value; // or (DateTime)theSqlDate;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27976 次 |
| 最近记录: |