如何将 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);
我的数据库中有 .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);