`

sql中时间相减(case when then的用法)

阅读更多
select f.FILE_ID,f.FILE_NAME,f.END_DATE, f.CREATE_MAN_ID,f.CREATE_MAN_NAME,f.CREATE_TIME,COUNT(f.FILE_ID) billNum,
CASE
      WHEN CAST(SYSDATE - TO_DATE (f.END_DATE, 'yyyy-mm-dd hh:mi:ss') AS number)< 0
       THEN '超过'||substr(CAST(SYSDATE AS TIMESTAMP)-CAST(TO_DATE (f.END_DATE, 'yyyy-mm-dd hh:mi:ss') AS TIMESTAMP),9,2)||'天'
    ||substr(CAST(SYSDATE AS TIMESTAMP)-CAST(TO_DATE (f.END_DATE, 'yyyy-mm-dd hh:mi:ss') AS TIMESTAMP),12,2)||'小时'
        ||substr(CAST(SYSDATE AS TIMESTAMP)-CAST(TO_DATE (f.END_DATE, 'yyyy-mm-dd hh:mi:ss') AS TIMESTAMP),15,2)||'分钟'
       WHEN CAST(SYSDATE - TO_DATE (f.END_DATE, 'yyyy-mm-dd hh:mi:ss') AS number)>0
                tHEN substr(CAST(SYSDATE AS TIMESTAMP)-CAST(TO_DATE (f.END_DATE, 'yyyy-mm-dd hh:mi:ss') AS TIMESTAMP),9,2)
                 ||'天'||substr(CAST(SYSDATE AS TIMESTAMP)-CAST(TO_DATE (f.END_DATE, 'yyyy-mm-dd hh:mi:ss') AS TIMESTAMP),12,2)||'小时'
                   ||substr(CAST(SYSDATE AS TIMESTAMP)-CAST(TO_DATE (f.END_DATE, 'yyyy-mm-dd hh:mi:ss') AS TIMESTAMP),15,2)||'分钟'
      ELSE '0'
      End  remainDate                    
from TD_SKL_DEMANDFILE f,TD_SKL_DEMANDSUBMIT s
where f.FILE_ID=s.FILE_ID
group by f.FILE_ID,f.FILE_NAME,f.END_DATE, f.CREATE_MAN_ID,f.CREATE_MAN_NAME,f.CREATE_TIME
分享到:
评论

相关推荐

    oracle日期时间判断函数

    在Oracle数据库系统中,日期和时间的处理是数据库操作中的重要组成部分。Oracle提供了丰富的日期时间函数,用于处理和分析日期时间数据。针对标题"oracle日期时间判断函数"和描述中提到的内容,我们可以深入探讨两个...

    SQL工作日计算,只排除周末

    (CASE WHEN ((@@DATEFIRST + DATEPART(Weekday, @dt_begin) - 1) % 7 BETWEEN 1 AND 5) THEN @workday + 1 ELSE @workday END); -- 将起始日期递增一天 SET @dt_begin = @dt_begin + 1; END -- 返回计算...

    mysql转oracle要注意的几项

    例如,给定文件中的第一段代码展示了如何在Oracle中使用`CASE WHEN`来替代MySQL中的`IF`函数。具体而言: ```sql -- Oracle SELECT (CASE WHEN NVL(列1, 0) &gt; 0 AND NVL(列2, 0) &gt; 10 THEN 1 ELSE 0 END) AS num ...

    sql面试大全38题(基本包含所有知识点)

    ### SQL面试大全38题(基本包含所有知识点) #### 知识点概览 本篇内容将基于给定的SQL查询题目,详细解析其中涉及的关键知识点,并深入探讨这些知识点的实际应用场景,帮助读者更好地理解并掌握SQL的核心技术。 ...

    SQLServer实验题答案PPT课件.pptx

    使用CASE语句根据部门名动态设置部门类型,例如`CASE WHEN 部门名 = '人事处' THEN '管理部门'...END AS 部门类型`。 11. 若存在职工号为10的职工,显示其工作部门名称,否则显示相应提示信息: 使用IF EXISTS或...

    oracle常用的sql语句

    可以显式指定排序顺序,例如:`SELECT * FROM table_name ORDER BY CASE WHEN column_name &gt; 0 THEN 1 ELSE 0 END, column_name ASC;`。 ##### 9.3 多个字段排序 可以同时指定多个字段进行排序,例如:`SELECT * ...

    Oracle 练习题 很好的自测题

    **SQL**: `SELECT d.department_name, r.region_name FROM departments d JOIN regions r ON d.region_id = r.region_id JOIN s_emp e ON d.department_id = e.department_id GROUP BY d.department_name, r.region_...

    Oracle学习(比较齐全的介绍)

    SELECT * FROM table_name ORDER BY CASE WHEN column_name = 'value' THEN 1 ELSE 2 END, column_name ASC; ``` ##### 3. 多个字段排序 按多个字段排序: ```sql SELECT * FROM table_name ORDER BY column_name1 ...

    DB2编程序技巧 (三)

    #### 一、简化游标使用方法 在DB2中,游标是一种非常重要的数据库编程技术,它允许用户通过循环处理的方式逐条访问查询结果集中的每一行数据。传统的游标使用方法通常涉及到`OPEN`、`FETCH`和`CLOSE`等关键字来控制...

Global site tag (gtag.js) - Google Analytics