SQL 服务器兼容 C# 的仅解析时间(分钟:Seconds.Ms)

Parse Time only (Minutes:Seconds.Ms) for SQL Server compliant C#

我有一个包含 minutes.seconds.milliseconds 的字符串。我需要将其转换为类型为 TIME.

的 SQL 服务器兼容值

这是我迄今为止尝试过的方法,但我仍然收到格式异常

var a = "1.39.26";
        var ab = a.Split('.');
        var minutes = ab[0];
        var seconds = ab[1];
        var ms = ab[2];
        string time =  minutes + ":" + seconds + "." + ms;
        var one = TimeSpan.ParseExact(time, "mm:ss.FF",CultureInfo.InvariantCulture);
        var two = DateTime.ParseExact(time, "mm:ss.FF",
                                 CultureInfo.InvariantCulture
                                 );

也试过

string time = DateTime.Now.Date.ToString() + minutes + ":" + seconds + "." + ms;
var one = TimeSpan.ParseExact(time, "dd-MM-yyyy mm:ss.FF", CultureInfo.InvariantCulture);
var two = DateTime.ParseExact(time, "dd-MM-yyyy mm:ss.FF", CultureInfo.InvariantCulture);

我们无法知道您的 DateTime.Now.Date.ToString() returns 因为这取决于您的 CurrentCulture 设置,但您可以 直接解析这个字符串为TimeSpan as;

var a = "1.39.26";
TimeSpan ts = TimeSpan.ParseExact(a, "m\.ss\.ff", CultureInfo.InvariantCulture);

如果需要,您可以稍后将此值添加到您的 DateTime.Today

DateTime dt = DateTime.Today.Add(ts);

但由于 TIME mapped with TimeSpan 在 CLR 方面,我怀疑你是否想要这个。

进一步阅读;