怎么查DB2数据库中,虽是varchar型的2个字段,但是实际存的是日期,俩个字段之间相差7天之内的数据。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么查DB2数据库中,虽是varchar型的2个字段,但是实际存的是日期,俩个字段之间相差7天之内的数据。相关的知识,希望对你有一定的参考价值。

db2数据库2个表T1、T2,分别有字段date1、date2,都为varchar型,存的数据例如:20121223。怎么查T1、T2表中date1与date2相差2天的数据呢?

把20121223 转换为2012-12-23 可以用dayofyear()求得一年中的第几天 然后差值为2
where abs(dayofyear(concat(concat(concat(substr(date1,1,4),'-'),concat(substr(date1,5,2),'-')),substr(date1,7,2))) as week) - dayofyear(concat(concat(concat(substr(date2,1,4),'-'),concat(substr(date2,5,2),'-')),substr(date2,7,2))) )) =2 可以试试
参考技术A select * from (select date1 from T1) a,(select date2 from T2) b where abs(to_number(a.date1,'yyyymmdd')-to_number(b.date2,'L999999'))=2;

DB2 varchar 字符大小写?

【中文标题】DB2 varchar 字符大小写?【英文标题】:DB2 varchar characters casE? 【发布时间】:2015-11-16 16:48:57 【问题描述】:

首先抱歉我想不出一个合适的标题,但无论如何我有一个标题为unit_id 的列,它是一个varchar。并且一些数据带有 3 个字符,但我需要它们在值前面有一个 0。 我正在考虑做一个case or if,但我不知道怎么写。 回顾 数据以164 的形式出现,但我希望它以0164 的形式出现 提前谢谢你们!

【问题讨论】:

【参考方案1】:

听起来您正在寻找LPAD function:

SELECT LPAD(unit_id,4,'0') FROM your_table

【讨论】:

以上是关于怎么查DB2数据库中,虽是varchar型的2个字段,但是实际存的是日期,俩个字段之间相差7天之内的数据。的主要内容,如果未能解决你的问题,请参考以下文章

MySQL中怎么对varchar类型排序问题

db2如何 varchar转int类型

DB2中如何将一个clob类型的字段改为varchar类型

mysql中int型的数字怎么转换成字符串

DB2 varchar 字符大小写?

DB2 VARCHAR unicode 数据存储