IT TIP

sqldatetime.minvalue를 datetime으로 변환하는 방법은 무엇입니까?

itqueen 2020. 12. 31. 23:15
반응형

sqldatetime.minvalue를 datetime으로 변환하는 방법은 무엇입니까?


sqldatatime.minvalue를 datetime 개체로 변환 할 수없는 것 같습니다.

나는 시도했다 :

Datetime dt = Convert.ToDateTime(SqlDateTime.MinValue);

그것은 분명히 작동하지 않았습니다.


명시 적 변환 연산자를 사용하지 않는 이유는 무엇입니까?

DateTime dt = (DateTime) SqlDateTime.MinValue;

그것은 나를 위해 작동합니다.

using System;
using System.Data.SqlTypes;

class Test
{
    static void Main()
    {
        DateTime dt = (DateTime) SqlDateTime.MinValue;
        Console.WriteLine(dt);
    }
}

변환 할 필요가 없습니다. 을 반환 SqlDateTime하는 Value 속성이 DateTime있습니다.

DateTime dt = SqlDateTime.MinValue.Value;

귀하가받은 답변은 가치를 변환하는 두 가지 방법을 보여주었습니다. 하나는 정의 명시 적 변환을 사용하는 것 SqlDateTime까지를 DateTime다른 하나는 액세스하는 것입니다, .Value온 재산을 SqlDateTime반환 인스턴스 DateTime.

var date = theSqlDate.Value; // via property
var date = (DateTime)theSqlDate; // via explicit conversion

고려할 가치가있는 장단점이 있습니다. SqlDateTimevalue를 통해 데이터베이스의 null 값 개념 (DBNull, 현재 삭제 된 다른 답변에서 참조)을 지원합니다 SqlDateTime.Null. Value"null"인스턴스 속성에 액세스하면 SqlNullValueException. 반면에 DateTime으로 명시 적으로 변환하면 {January 1, 1900 12:00:00 AM}. 이러한 결과 중 어느 것도 코드에서 원하지 않을 수 있습니다. 데이터베이스에서 유효한 null 항목을 null이 아닌 기본값으로 덮어 쓰는 것은 런타임에 예외를받는 것만 큼 나쁠 수 있습니다.

데이터베이스에 nullable 열이 있고을 사용하는 경우 SqlDateTime명시 적으로 테스트하고 SqlDateTime.Null다르게 처리해야 할 수 있으며 다른 값을 변환하기 위해 어떤 접근 방식을 취하는지는 중요하지 않을 수 있습니다.

DateTime? date;
if (theSqlDate.Equals(SqlDateTime.Null))
    date = null
else 
    date = theSqlDate.Value; // or (DateTime)theSqlDate;

참조 URL : https://stackoverflow.com/questions/7688285/how-to-convert-sqldatetime-minvalue-to-datetime

반응형