Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 获取以天、小时、分钟和秒为单位的日期差(上午/下午日期)_Mysql_Sql_Date Difference - Fatal编程技术网

Mysql 获取以天、小时、分钟和秒为单位的日期差(上午/下午日期)

Mysql 获取以天、小时、分钟和秒为单位的日期差(上午/下午日期),mysql,sql,date-difference,Mysql,Sql,Date Difference,试图从日期的字符串条目中获取日-小时-分钟-秒中的日期差。此外,时间条目具有AM、PM。 我试图使用子字符串并将其转换为日期时间,但am-PM使其变得困难 我有:06-10-15 09.30.20.000000上午和06-10-15 09.45.20.000000下午 我正在尝试获取:0天12小时15分钟0秒请参见下面的SQL Server查询。我知道这会奏效,因为我在这方面有一些经验 WITH CTE AS ( SELECT CAST( DATEDIFF(

试图从日期的字符串条目中获取日-小时-分钟-秒中的日期差。此外,时间条目具有
AM、PM
。 我试图使用子字符串并将其转换为日期时间,但
am-PM
使其变得困难

我有:
06-10-15 09.30.20.000000上午
06-10-15 09.45.20.000000下午


我正在尝试获取:
0天12小时15分钟0秒

请参见下面的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
这可能会有帮助

获取小时数的示例 您必须更改日期字符串 像

选择datediff(小时,转换(datetime,'06-OCT-15 09:00:00.000 AM'),'06-OCT-15 08:00:00.000 PM')作为DiffDate 结果:
11

最大的问题似乎是将datetime格式正确转换为mySQL可以使用的格式

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


您正在使用哪些数据库管理系统?(不幸的是,有太多的产品在日期/时间方面与ANSI SQL不兼容。)您使用什么数据库?mySQL,Oracle,Vertica,…?relational…我使用的是SQL server使用的dbVisualizer,mySQL查询也将与SQL server兼容,mySQL答案在这里不兼容…我不确定RDBMS与此问题的相关性。为什么不直接使用应用程序级代码呢?谢谢,这很有帮助,它可以单独计算所有的内容。我想把它们都放在一起。计算有重叠。通过这种方式,分钟将包含在分钟和小时中。编辑后,结果将全部包含在一起。谢谢!我不是在说连接,希望你能理解上面的评论。它能被计算出来吗。这是在计算一切。(秒也以分钟计算,分钟也以小时计算)
13小时
=
780分钟
=
46800秒
。只需
13小时
我们需要,告诉大家
mins
secs
0
日期数据已格式化,只需
CAST
即可。需要正确计算