sql - 解析sql中的时间跨度字符串

标签 sql sql-server parsing sql-server-2005

我正在从一个数据源读取数据,该数据源以 d:h:m:s:f 格式给我时间,日期部分始终为 0,该列表示时间的一天。我想将此列添加到我已有的日期时间。

Entry_Date          Entry_Time
3/3/2009 12:00:00   0:16:17:6:0
8/24/2011 12:00:00  0:8:39:18:0
9/4/2010 12:00:00   0:12:33:18:0

如果我使用 C#,我会做 TimeSpan.ParseExact,但我不知道如何以纯 sql 方式处理它。

我会转换为 time,但我使用的是 Sql Server 2005,它没有 time 类型。

如何将时间添加到邻近的日期时间?

最佳答案

就这么简单:

select Entry_Date + cast(Entry_Time as datetime) combinedCol
from YourTable

这是一个有效的 fiddle :http://sqlfiddle.com/#!3/85c3c/1

尽情享受吧!


提问者的原注:

SQL 无法处理小数秒,但是可以将它们剪掉,这样查询将是

select Entry_Date + cast(left(Entry_Time, len(Entry_Time) - 2) as datetime) combinedCol
from YourTable

关于sql - 解析sql中的时间跨度字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16423138/

相关文章:

mysql - 如何在sql语句中选择年份

mysql - 如何将数据插入 Tempdb 直到满足不同值的数量

sql - 一步选择变量最大的行

mysql - 使用简单 HTML DOM 解析器解析远程 HTML 文件收到的值不会存储到 mysql 数据库中

特定长度的 RegEX 字符串

java - Android:将房间数据库链接和同步到在线服务器数据库

sql - lib/pq postgres驱动程序中的连接泄漏

c# - 带有日期参数的 Angular 6 服务调用

sql-server - 什么是僵尸交易?

python - 递归错误: maximum recursion depth exceeded while using lark in python