获取以天、小时、分钟和秒为单位的日期差异(AM/PM 日期)

Get date difference in days, hours, mins and secs (AM/PM date)

试图从日期的字符串条目中获取 day - hours - mins - sec 中的日期差异。时间条目也有 AM, PM。 我正在尝试使用子字符串并将其转换为日期时间,但是 AM - PM 让它变得困难。

我有:06-OCT-15 09.30.20.000000 AM06-OCT-15 09.45.20.000000 PM

我正在尝试获取:0 day(s) 12 hour(s) 15 min(s) 0 sec(s)

见下文SQL服务器查询。我知道这会起作用,因为我在这方面有一些经验。

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

获取小时数的示例 你必须改变你的日期字符串 喜欢

select datediff(hour,CONVERT(datetime, '06-OCT-15 09:00:00.000 AM'),'06-OCT-15 08:00:00.000 PM' ) 作为差异日期 结果: 11

最大的问题似乎是将日期时间格式正确转换为 mySQL 可以使用的格式。

您可以在此处找到 mySQL 提供的格式选项来执行此操作:

www.w3schools.com/sql/func_date_format.asp