oracle如何查询任意时间段的具体一天日期

oracle如何查询任意时间段的具体一天日期,第1张

每天的销售数量可以根据业务去汇总,如果想给定日期段,获取每天作为一条记录,可以有一种方式,但日期范围不能太大,否则效率会有问题。

select trunc(Start_Date)+rownum from 表名

where rownum<=trunc(End_Date)-trunc(Start_Date)

前提是:表中要有足够的记录数,但也不能太多,否则效率同样会低。

SELECT TRUNC( SYSDATE, 'YYYY' ) FROM DUAL

可以获取 今年的 1月1号

那么, 如果你知道天数, 就是

SELECT TRUNC( SYSDATE, 'YYYY' ) + 今年的第几天 - 1 FROM DUAL

select

from (select to_date('2013-01-01', 'yyyy-mm-dd') + rownum - 1 days

from dba_objects) a

where extract(year from days) = 2013

and to_char(days, 'WW') = 22

and to_char(days, 'day') in ('星期一', '星期二', '星期三', '星期四', '星期五')

年份:2013,第几周:22

1col_name为date格式的例子

(select col_name from table where abs(col_name-to_date(&date))=(select min(abs(col_name-to_date(&date)) from table);

2 col_name为char的话就to_date(给定的时间)

测试通过

select to_char(a-1,'yyyy-mm-dd hh24:mi:ss'),to_char(a,'yyyy-mm-dd hh24:mi:ss') from

(select trunc(to_date('2013-10-27 14:56:56','yyyy-mm-dd hh24:mi:ss')) a

from dual)

;

这个属于oracle时间函数的用法

在oracle里,日期格式是一种特殊的东西

这里有一个日期转换函数

select to_char(日期,'yyyy-mm-dd hh24:mi:ss') from tablename;

这里的to_char就是将日期型转换成字符型的一个函数,转换成的格式就是

2010-08-23 17:51:20

当然你可以将这个日期转换成其他,如:

select to_char(日期,'yyyy-mm-dd') from tablename;

查出来的结果2010-08-23

所以你要根据这个日期来查东西就可以这么用

select from tablename where to_char(日期,'yyyymmdd')between '20100801' and '20100823'

这个就是查日期8月1日到8月23日的数据

select from tablename where to_char(日期,'yyyymmdd') = '20100801'

这个就是查8月1日的数据

其他不懂的你再问吧

-------补充------

你把你写的东西粘贴一下,也好帮你分析啊

你后边的" + modelCsrq + "参数传进来的是什么东西

---------补充2-------

'yyyy-mm-dd 24hi:mi:ss'

这个地方错了,应改成

'yyyy-mm-dd hh24:mi:ss'

不是24hi

以上就是关于oracle如何查询任意时间段的具体一天日期全部的内容,包括:oracle如何查询任意时间段的具体一天日期、oracle怎么得到天数对应的日期、oracle 获取指定周的星期一到星期五日期等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9654294.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存