试图从日期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)
。
试图从日期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)
。
请参阅下面的 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
它可能会有所帮助 http://www.w3schools.com/sql/func_datediff.asp
获取小时数的示例,您必须更改日期字符串,例如
选择 datediff(hour,CONVERT(datetime, '06-OCT-15 09:00:00.000 AM'),'06-OCT-15 08:00:00.000 PM') 作为 DiffDate 结果:11
最大的问题似乎是将您的日期时间格式正确转换为 mySQL 可以使用的格式。
在这里,您将找到 mySQL 提供的执行此操作的格式选项: