我的数据库中有 .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);
关于sql-server - 如何使用 PARSE 和 .net 时间戳字符串作为 SQL 中的时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61247448/