如何将SqlDateTime值转换为.Net :: DateTime

Cod*_*der 8 c# sql datetime

试图到处搜索,不去.

到目前为止的方法是DateTime dt = (DateTime)sqlparam.Value;.我可以想象在不同的​​配置,不同的SQL区域设置,不同的PC区域设置等方面会出错.但话说回来,解析SQL datetime字符串的值是更疯狂的想法.

有没有一个可行的解决方案,它是.NET,应该有一个,对吗?

Joe*_*l C 15

SqlDateTime班有一个属性Value这已经是类型DateTime.为什么要进行任何转换?只需Value直接使用.


Bad*_*adr 5

using System;

class Program
{
    static void Main()
    {
    // Taken from MySQL: SELECT CURTIME()
    //                   SELECT TIME(...)
    string mySqlTime = "23:50:26";
    DateTime time = DateTime.Parse(mySqlTime);

    // Taken from MySQL: SELECT TIMESTAMP(...)
    string mySqlTimestamp = "2003-12-31 00:00:00";
    time = DateTime.Parse(mySqlTimestamp);
    Console.WriteLine(time);

    // Taken from MySQL: SELECT CURDATE()
    //                   SELECT DATE(...)
    string mySqlDate = "2008-06-13";
    time = DateTime.Parse(mySqlDate);
    Console.WriteLine(time);
    }
}
Run Code Online (Sandbox Code Playgroud)


Wid*_*dor 5

我不明白显式转换它有什么问题,我就是这样做的。

如果您的问题是由“不同的配置、不同的 SQL 区域设置、不同的 PC 区域设置”引起的,那么使用不同的转换方法将无济于事。

但是,您可能希望查看 SQL Server 2008 中的这种新数据类型: DateTimeOffset