尝试从日期的字符串条目中获取day - hours - mins - sec
中的日期差异。此时间条目还有AM, PM
。
我正在尝试使用子字符串并将其转换为日期时间,但AM - PM
使其变得困难。
我有:06-OCT-15 09.30.20.000000 AM
和06-OCT-15 09.45.20.000000 PM
我想获得:0 day(s) 12 hour(s) 15 min(s) 0 sec(s)
。
答案 0 :(得分:11)
请参阅下面的SQL Server查询。我知道这会有效,因为我有一些经验。
WITH CTE AS (
SELECT CAST(
DATEDIFF(
DAY,
'2015-10-06 08:00:00.00 AM',
'2015-10-06 09:00:00.00 PM'
) AS
VARCHAR(1000)
) + ' day(s)' AS Days,
CAST(
DATEDIFF(
hh,
'2015-10-06 08:00:00.00 AM',
'2015-10-06 09:00:00.00 PM'
) AS VARCHAR(1000)
) + ' hour(s)' AS Hours,
CAST(
DATEDIFF(
mi,
'2015-10-06 08:00:00.00 AM',
'2015-10-06 09:00:00.00 PM'
) AS VARCHAR(1000)
) + ' min(s)' AS Minutes,
CAST(
DATEDIFF(
ss,
'2015-10-06 08:00:00.00 AM',
'2015-10-06 09:00:00.00 PM'
) AS VARCHAR(1000)
) + ' sec(s)' AS Seconds
)
SELECT Days + ' ' + Hours + ' ' + Minutes + ' ' + Seconds AS FullDifference
FROM CTE
答案 1 :(得分:1)
获得时间的示例 你必须改变日期字符串 像
选择datediff(小时,CONVERT(日期时间,' 06-OCT-15 09:00:00.000 AM'),' 06-OCT-15 08:00:00.000 PM' )AS DiffDate 结果: 11
答案 2 :(得分:0)