mysql - mysql 或 oracle SQL 中日期之间的减少/增加

标签 mysql oracle

我在查询 mysql 时遇到问题 我想找到两个日期之间每个日期的小时除以天 例如,

<小时/>

我有开始日期 14/12/2014 09:00:00AM 和结束日期 17/12/2014 03:30:00AM

我想要这样的结果

  1. 2014 年 12 月 14 日 - 15 小时
  2. 1014 年 12 月 15 日 - 24 小时
  3. 2014 年 12 月 16 日 - 24 小时
  4. 2014 年 12 月 17 日 - 3.5 小时
<小时/>

这在 MySQL 或 Oracle SQL 查询中可能吗?

最佳答案

终于找到了oracle sql的查询...
感谢您的帮助

<小时/>
SELECT
  TO_DATE (START_DATE + COLUMN_VALUE - 1, 'DD/MM/YYYY') AS THE_DATE,
  CASE
    WHEN TO_DATE (START_DATE, 'DD/MM/YYYY') = TO_DATE (END_DATE, 'DD/MM/YYYY')
      THEN (END_DATE - START_DATE)*24
    WHEN (START_DATE + COLUMN_VALUE - 1) = START_DATE
      THEN (23 - TO_CHAR (START_DATE, 'HH24')) + ((60 - TO_CHAR (START_DATE, 'MI'))/60) + ((360 - TO_CHAR (START_DATE, 'SS'))/360)
    WHEN TO_DATE (START_DATE + COLUMN_VALUE - 1, 'DD/MM/YYYY') <> TO_DATE (END_DATE, 'DD/MM/YYYY')
      THEN 24
    ELSE TO_CHAR (END_DATE, 'HH24') + 
         (TO_CHAR (END_DATE, 'MI')/60) + 
         (TO_CHAR (END_DATE, 'SS')/360) END
FROM MY_TABLE,
     TABLE( CAST( MULTISET (
       SELECT
         LEVEL L
       FROM DUAL
       CONNECT BY LEVEL <= END_DATE - START_DATE + 1) AS SYS.ODCINUMBERLIST))

关于mysql - mysql 或 oracle SQL 中日期之间的减少/增加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31107880/

相关文章:

sql - 在 SQL 中,为什么在子查询中不使用 "Distinct",在其他表中查找某些项目 "not showing up"?

sql - Oracle触发器将所有插入/更新写入文件

oracle - Coldfusion oracle jdbc Macromedia 与 Thin

sql - 如何使用 Oracle 12c 查询为 JSON 中的数组编制索引?

regex - 字符串末尾的正则表达式 _#

mysql 查询 - 一对多关系

PHPMyAdmin 未创建关系

java - 在 MySQL 中存储转义字符

java - 排除默认的 logback 文件

sql - 在PL/SQL中创建或模拟二维数组