如何将 PARSE 与 .net 时间戳字符串一起用作 SQL 中的时间?

How to use PARSE with a .net timestamp string as time in SQL?

我的数据库中有 .NET TimeSpan 字符串。 我想在 SQL 查询中将它们解析为时间。

在下面的示例中,我尝试转换值为 3 天的时间戳字符串。

SELECT PARSE('3.00:00:00.0000000' AS time)

但是,它因以下错误而失败:

Error converting string value '3.00:00:00.0000000' into data type time using culture ''.

使用一种文化根本没有帮助。

根据 documentation 我应该可以做到这一点。

time TimeSpan DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal

目前我没有在网上找到任何提示。

一种方法是 PARSENAME。下面的示例忽略了 Timespan 字符串的天数部分,只返回时间部分。

-- build string in HH:mm:ss.fffffff format and parse as time(7)
SELECT
    PARSE(
          PARSENAME('3.00:00:00.0000000',2) --00:00:00
        + '.'
        + PARSENAME('3.00:00:00.0000000',1) --0000000
    AS time);