DB2请教取任何两个时间段内的所有年月的SQL语句如何实现 比如 20050903 -- 20060201,得到 200509 200510
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DB2请教取任何两个时间段内的所有年月的SQL语句如何实现 比如 20050903 -- 20060201,得到 200509 200510相关的知识,希望对你有一定的参考价值。
比如 20050903 -- 20060201,得到 200509 200510 200511 200512 200601 200602
其实很多需求没有必要老想着用一个语句搞掂,可以试试用存储过程或者函数完成。假如你真的不想用存储过程或者函数,你可以参照下面的语句实现你的要求:WITH TEMP1(COL1,COL2) AS
(
VALUES (DATE('2005-09-03'), DATE('2005-09-03') + 1 MONTHS)
UNION ALL
SELECT COL1 + 1 MONTHS, COL2 + 1 MONTHS
FROM TEMP1
WHERE COL1 + 1 MONTHS <= DATE('2006-02-01')
)
SELECT
YEAR(COL1) * 100 + MONTH(COL1) AS MONBEGIN,
YEAR(COL2) * 100 + MONTH(COL2) AS MONEND
FROM TEMP1
你只要将语句里面的日期替换一下就能实现你的要求。 语句执行后的结果是这样:
MONBEGIN MONEND
200509 200510
200510 200511
200511 200512
200512 200601
200601 200602 参考技术A 我这里有个解决方案不知道适合你不,比如rq是一个关于日期的字段select replace(str(year(rq))+str(month(rq)),' ','')from table 就基本上能实现你的要求,不过有点遗憾的是,他9月就是一个9,没有09,这个跟datatima型有关吧,我是在sql查询分析器上测试的,你自己斟酌一下吧 参考技术B 存储过程
sql怎么取时间字段的年月日的值
sql取时间字段中年月日的值的步骤如下:
我们需要准备的材料分别是:电脑、sql查询器。
1、首先,打开sql查询器,连接上相应的sql表。
2、点击“查询”按钮,输入:SELECT date_format(add_time, '%Y') as year, date_format(add_time, '%m') as month, date_format(add_time, '%d') as day FROM test;。
3、点击“运行”按钮,时间字段的年月日就被取出了。
select DATENAME(year,getdate()) //取年(返回字符串)
select DATENAME(month,getdate()) //取月(返回字符串)
select DATENAME(day,getdate()) //取日(返回字符串)
select DATEPART(year,getdate()) //取年(返回整数)
select DATEPART(month,getdate()) //取月(返回整数)
select DATEPART(day,getdate()) //取日(返回整数) 参考技术B select to_char(时间字段,'yyyy-mm-dd') from 表名;
这样就取出时间字段中的年月日 ,格式为 2010-08-19 参考技术C <%=year(rs(''日期''))%>-<%=Month(rs(''日期''))%>-<%=day(rs(''日期''))%>=年-月-日 参考技术D select sysdate,to_char(sysdate,'yyyy') nowYear, to_char(sysdate,'mm') nowMonth, to_char(sysdate,'dd') nowDay from dual;追问
能不能 说得简单点 我现在是想把已有的时间字段jf_date(存进的格式是默认格式)里面的年月日取出来2011-8-7跟系统时间getdate()方法获得的时间做匹配
追答如果jf_date 的数据类型为日期可以直接匹配,如果不是先转换能日期类型再匹配
以上是关于DB2请教取任何两个时间段内的所有年月的SQL语句如何实现 比如 20050903 -- 20060201,得到 200509 200510的主要内容,如果未能解决你的问题,请参考以下文章