获取日期,小时,分钟和秒的日期差异(上午/下午日期)

时间:2015-10-06 10:53:01

标签: mysql sql date-difference

尝试从日期的字符串条目中获取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)

3 个答案:

答案 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)

它可能会有所帮助 http://www.w3schools.com/sql/func_datediff.asp

获得时间的示例 你必须改变日期字符串 像

选择datediff(小时,CONVERT(日期时间,' 06-OCT-15 09:00:00.000 AM'),' 06-OCT-15 08:00:00.000 PM' )AS DiffDate 结果: 11

答案 2 :(得分:0)

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

在这里,您将找到mySQL提供的格式选项:

www.w3schools.com/sql/func_date_format.asp