db2中timestamp做差(DB2中两时间相减之前相差多少月)

本文目录
- DB2中两时间相减之前相差多少月
- db2 日期相减
- 在DB2数据库中计算天数问题超过30天的计算问题
- db2数据库常用函数
- DB2数据库如何获取当前系统时间
- DB2 SQL求两日期(名目为“yyyyMMdd”)相差天数,若何做到
- db2使用timestampdiff提示查询结果有多行
DB2中两时间相减之前相差多少月
SELECT
timestampdiff (256, char(timestamp(’2013-12-30 20:30:30’) - timestamp(’2001-09-26 15:24:23’))) AS "间隔年",
timestampdiff (128, char(timestamp(’2013-12-30 20:30:30’) - timestamp(’2001-09-26 15:24:23’))) AS "间隔季度",
timestampdiff (64, char(timestamp(’2013-12-30 20:30:30’) - timestamp(’2001-09-26 15:24:23’))) AS "间隔月",
timestampdiff (32, char(timestamp(’2013-12-30 20:30:30’) - timestamp(’2001-09-26 15:24:23’))) AS "间隔周",
timestampdiff (16, char(timestamp(’2013-12-30 20:30:30’) - timestamp(’2001-09-26 15:24:23’))) AS "间隔日",
timestampdiff (8, char(timestamp(’2013-12-30 20:30:30’) - timestamp(’2001-09-26 15:24:23’))) AS "间隔时",
timestampdiff (4, char(timestamp(’2013-12-30 20:30:30’) - timestamp(’2001-09-26 15:24:23’))) AS "间隔分",
timestampdiff (2, char(timestamp(’2013-12-30 20:30:30’) - timestamp(’2001-09-26 15:24:23’))) AS "间隔秒"
FROM SYSIBM.SYSDUMMY1;
间隔年 间隔季度 间隔月 间隔周 间隔日 间隔时 间隔分 间隔秒
----------- ----------- ----------- ----------- ----------- ----------- ----------- -----------
12 49 147 637 4474 107381 6442866 386571967
1 条记录已选择。
db2 日期相减
你这个可能是 CASE WHEN 的问题
第一种情况下, 结果是 字符类型的 ‘已到期’
第二种情况下, 结果是 数字类型的
也就是你一个查询, 其中某一列的数据类型, 又是字符, 又是数字的。
导致查询出现错误了。
你尝试在后面那里 加一个 TO_CHAR() 看看
TO_CHAR(day (TIMESTAMP (s.created_date)) - day (current date), ’999’ )
在DB2数据库中计算天数问题超过30天的计算问题
timestampdiff (, char(
timestamp(’2011-10-06-00.00.00’)-
timestamp( n, ’2011-10-01-00.00.00’)))
对于 n,可以使用以下各值来替代,以指出结果的时间单位:
1 = 秒的小数部分
2 = 秒
4 = 分
8 = 时
16 = 天
32 = 周
64 = 月
128 = 季度
256 = 年
SELECT
timestampdiff (256, char(timestamp(’2013-12-30 20:30:30’) - timestamp(’2001-09-26 15:24:23’))) AS "间隔年",
timestampdiff (128, char(timestamp(’2013-12-30 20:30:30’) - timestamp(’2001-09-26 15:24:23’))) AS "间隔季度",
timestampdiff (64, char(timestamp(’2013-12-30 20:30:30’) - timestamp(’2001-09-26 15:24:23’))) AS "间隔月",
timestampdiff (32, char(timestamp(’2013-12-30 20:30:30’) - timestamp(’2001-09-26 15:24:23’))) AS "间隔周",
timestampdiff (16, char(timestamp(’2013-12-30 20:30:30’) - timestamp(’2001-09-26 15:24:23’))) AS "间隔日",
timestampdiff (8, char(timestamp(’2013-12-30 20:30:30’) - timestamp(’2001-09-26 15:24:23’))) AS "间隔时",
timestampdiff (4, char(timestamp(’2013-12-30 20:30:30’) - timestamp(’2001-09-26 15:24:23’))) AS "间隔分",
timestampdiff (2, char(timestamp(’2013-12-30 20:30:30’) - timestamp(’2001-09-26 15:24:23’))) AS "间隔秒"
FROM SYSIBM.SYSDUMMY1;
间隔年 间隔季度 间隔月 间隔周 间隔日 间隔时 间隔分 间隔秒
----------- ----------- ----------- ----------- ----------- ----------- ----------- -----------
12 49 147 637 4474 107381 6442866 386571967
1 条记录已选择。
db2数据库常用函数
1、value函数
用法:select value(id,’’) from merchant ;
如果id为空,返回空,如果id不为空,返回id的值;
2、nvl函数
用法:select nvl(id,’’) from merchant ;
如果id为空,返回空,如果id不为空,返回id的值;
3、substr函数
用法:select substr(src_ip,1,2) from tbl_sybvclear_txn;
从src_ip第一位开始,取两位;
4、length函数
用法:select length(src_ip) from tbl_sybvclear_txn;
计算字符串的长度,不必赘述;
5、ltrim函数,rtrim函数
用法:去掉左侧,右侧的空格;
6、letf函数,right函数
用法:select left(src_ip,3),right(src_ip,3) from tbl_sybvclear_txn;
取src_ip左边3个,右边3个字符串;
7、concat函数
用法:select concat(src_ip,chl_resp) from tbl_sybvclear_txn;
字符串连接,mysql支持三个以上参数,db2只支持两个参数;
8、replace函数
用法:select src_ip,replace(src_ip,’223’,’55’) from tbl_sybvclear_txn;
把src_ip中223全部替换成55;
9、to_char函数,to_date函数,to_timestamp函数
用法:将数值型转成字符型
10、avg函数
用法:select avg(mcht_fee) from tbl_sybvclear_txn;
返回mcht_fee平均值;
11、count函数
用法:太常用,不赘述;
12、sum函数
用法:太常用,不赘述;
13、max函数,min函数
用法:取某列的最大值,最小值;
DB2数据库如何获取当前系统时间
DB2数据库获取当前系统时间的方法和操作步骤如下:
1、首先,使用sysdate函数获取当前时间,并执行以下语句:“select sysdate from dual”,如下图所示。
2、其次,使用sysdate()获取当前时间,执行以下语句:“select sysdate()”,确保添加括号,如下图所示。
3、接着,对于Gbase数据库(与获取当前时间的Mysql数据库相同),执行以下语句:“select sysdate()”,如下图所示。
4、然后,对于sysbase数据库,获取当前时间的函数是:“select getdate()”,如下图所示。
5、 随后,DB2数据库略有不同。 要获取当前时间,请使用以下查询sql:“SELECT current timestamp FROM sysibm.sysdummy1”,如下图所示。
6、最后,在获取当前时间之后,还希望将当前时间日期向前或向后一段时间。 对于DB2数据库,将当前时间提前一天:“select sysdate-1 from dual”,如下图所示。
DB2 SQL求两日期(名目为“yyyyMMdd”)相差天数,若何做到
select days(TO_DATE(’20130313’,’yyyy-mm-dd’))-days(TO_DATE(’20130301’,’yyyy-mm-dd’)) from sysibm.dual;一下SQL已验证,可以知足楼主需要
db2使用timestampdiff提示查询结果有多行
在Oracle里用减号“-”直接就是求两个日期时间变量或者表列的差值,只是要看你timestampdiff的第一个参数是求“月、天、时、分”还是“秒、微秒”,这个要略有变通,天数是最直接的。

更多文章:
gcc编译器参数(深度linux的arm-linux-gnueabihf-gcc编译参数如何配)
2026年10月11日 19:30
asp是什么检查项目(医院血液检验项目RPR、TPPA、HIV-Ab各是什么意思)
2026年10月11日 10:20
汇编输出指令(用汇编语言循环指令在屏幕中间输出红底白字的“hello I am 720“)
2026年10月11日 07:20
本地搭建springboot项目(使用eclipse构建springboot项目)
2026年10月11日 06:20
java入门神器好用吗(java 7入门经典适合初学者自学用吗)
2026年10月11日 02:40
unix文件系统采用(Unix采用树形文件系统,其中“树形文件系统”什么意思)
2026年10月11日 00:50





