对DB2系统当前日期进行格式化
来源:互联网 发布:手机淘宝历史版本 编辑:程序博客网 时间:2024/06/05 19:09
原公司用的数据库是Oracle和MySQL居多,写的SQL语句也比较少,有些生疏了。现在的公司使用的DB2数据库,完全没接触过,导致一些函数的使用要在网上搜索案例,现在总结一点DB2的函数使用方法。
正确需求:查询出指定日期的工作日,页面传一个天数,并返回一个新的日期。
下面是时间表字段:
刚开始项目经理并没有把需求说的很明白,导致查询的结果不对,原来的需求只是说过滤掉周六周日休息时间和周一至周五存调休放假的时间,得到上班的时间。
下面的SQL语句查出的是系统当前时间和一个指定日期这个区间的上班记录,SQL函数说明:
- CURRENT DATE:获取系统当前日期,但是获取的日期有 - 连接即:2017-11-30,数据库中的日期存储分为年月日三个字段,且为字符型,这里就需要用到相关函数对日期进行格式化。
- char(replace(char(date,iso),’-‘,”),8):转成字符yyyymmdd格式,将结果中的短横去掉后转换成8位的字符。
- DECIMAL():也可以去掉 - 转换成yyyymmdd格式
以上函数可以参考此帖:http://bbs.csdn.net/topics/310260682
select * from SAPHEC.ZCALDER a where (a.MANDT='720' and a.LANG='zh' --and a.YR='2017' --and a.mth='09' and a.ZDAYS!='1' and a.ZDAYS!='7' and a.off_srt!='Y' AND A.YR||A.MTH||A.ZDAY BETWEEN char(replace(char(CURRENT DATE,iso),'-',''),8) AND '20180101')union all (select * from SAPHEC.ZCALDER a where a.OFF_SRT='N' and a.LANG='zh' --and a.YR='2017' and a.MANDT='720' -- and a.mth='09' AND A.YR||A.MTH||A.ZDAY BETWEEN char(replace(char(CURRENT DATE,iso),'-',''),8) AND '20180101');
根据正确需求,返回一个日期,正确的SQL语句如下:
- rownumber() over():对重复的字段进行分组(类似group by),并生成一个序列
select DATE from(select DATE, ZDAYS, OFF_SRT, rownumber() over() as row_count from(--查询出2017年之后周末上班的数据select YR||MTH||ZDAY AS DATE, ZDAYS, OFF_SRT from saphec.ZCALDER where MANDT='720' and LANG='zh' AND YR||MTH||ZDAY > '20170101' and OFF_SRT = 'N' and (ZDAYS = '1' OR ZDAYS = '7') union --查询出2017年之后的上班日,不包含周六周日select YR||MTH||ZDAY AS DATE, ZDAYS, OFF_SRT from saphec.ZCALDER where MANDT='720' and LANG='zh' AND YR||MTH||ZDAY > '20170101' and OFF_SRT <> 'Y' AND ZDAYS IN ('2','3','4','5','6'))order by DATE fetch first 30 rows only) where row_count = 30;
阅读全文
0 0
- 对DB2系统当前日期进行格式化
- 输入日期,计算出与当前系统日期相隔多少天(获取系统时间,年月日分别获取,对其进行格式化simpledateformat;输入的日期类似操作)
- 对textbox1进行日期格式化
- Jquery对当前日期的操作(格式化当前日期)
- 如何得到当前的系统日期以及对当前的系统日期进行30天的加值!
- DB2 日期数据类型格式化
- db2获取当前日期
- 格式化当前日期
- 格式化当前日期
- 当前日期格式化
- js-格式化当前日期
- java中获取当前系统时间,日期并格式化输出
- java中获取当前系统时间,日期并格式化输出
- java中获取当前系统时间,日期并格式化输出
- 在页面显示当前系统日期及其格式化
- DELPHI获得系统当前时间日期和格式化时间
- java中获取当前系统时间,日期并格式化输出
- 如何再JAVA中对数字和日期进行格式化
- linux shell 通配
- C#实现人脸识别【Users】
- 线性表的链式存储
- [Rcode]构造函数把数据中某项状态的持续时间转化为新的向量
- 欢迎使用CSDN-markdown编辑器
- 对DB2系统当前日期进行格式化
- HMM经典介绍论文【Rabiner 1989】翻译(一)——介绍
- 图像处理硬背景知识
- 笔试题 7
- 自顶向下,逐步求精的案例
- QA管理:推动开发团队进行测试认证
- hadoop 分布式集群搭建
- git 常用指令
- 爬虫小记(4)