oracle怎么抓一周 oracle中怎么删除一行

ORACLE数据库查询一周以内的数据怎么写

截取本周第一天:

创新互联长期为上千多家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为河口企业提供专业的网站制作、成都网站制作,河口网站改版等技术服务。拥有10余年丰富建站经验和众多成功案例,为您定制开发。

SQL select sysdate,trunc(sysdate,'d') from dual;

SYSDATE TRUNC(SYSDATE,'D')

------------------- -------------------

2009-03-24 21:29:32 2009-03-22 00:00:00

如何从oracle中查到每个月中有几周,每周的日期段从几号到几号?

有几周,把每个月的最后一天拼成串传到如下SQL:

select to_char(to_date('20111031','yyyymmdd'),'w') from dual;

每周日期段没找到直接的,可以自己写个函数:

1、获取1号是周几,如周4;

2、则1-4号为第一周,即1号+(7-4)天=4号;

3、循环:4+1=5号——4+7=11号为第二周;

直到:某周加完后的日期,大于该月的最大天数,则取该月最大天数收尾,循环结束;

第二种方法是你建个存日期的表:

date week

……

20110101

20110102

……

里面存N年的日期,然后根据

select to_char(to_date('20111031','yyyymmdd'),'w') from dual; 把week字段update进去;

然后直接根据这张表写SQL就直接获取几周,每周是几号到几号了。。。

Oracle数据库中怎么取得从本周一到当前的时间

使用sql语句查询日期在一周内的数据 select * from ShopOrder where datediff(week,ordTime,getdate()-1)=0 //查询当天日期在一周年的数据 select * from ShopOrder where datediff(day,ordTime,getdate()-1)=0 //查询当天的所有数据 SELECT * F...

如何查询oracle数据库一周的数据

参考 oracle11g行变列两种办法的比较:

方法1:优点是分析函数,缺点:返回log,低效,

select link_pid, replace(strs,',','|') all_forms

from

(select t.link_pid,

wmsys.wm_concat(t.form_of_way)

over(partition by t.link_pid order by t.form_of_way ) strs,

row_number() over(partition by t.link_pid order by t.form_of_way) RN,

count(1) over(partition by t.link_pid ) CNT

from rd_link_form t

) where RN=CNT

方法2:优点是高效,返回char,缺点:不是分析函数

select t.link_pid,

listagg(t.form_of_way, '|')

within group (order by t.form_of_way ) all_forms

from rd_link_form t

group by t.link_pid

listagg()需在11.2版本下才行

两种方法的比较:依link_pid去重后有23万的数据量,方法1的wmsys.wm_concat用3小时看不到结果,方法2的listagg用80秒看到结果

【我以字典表user_tab_columns改写了上述SQL,如下,大家直接执行就行:】

方法1:

select table_name, replace(strs, ',', '|') all_forms

from (select t.table_name,

wmsys.wm_concat(t.COLUMN_NAME) over(partition by t.table_name order by t.COLUMN_NAME) strs,

row_number() over(partition by t.table_name order by t.COLUMN_NAME) RN,

count(1) over(partition by t.table_name) CNT

from user_tab_columns t)

where RN = CNT

方法2:

select t.table_name,

listagg(t.COLUMN_NAME, '|')

within group (order by t.COLUMN_NAME ) all_forms

from user_tab_columns t

group by t.table_name

大家可以直接在自己的pl/sql中运行上述SQL

ORACLE中怎么判断某一周的开始和结束日期?(要具体用法)

通过 对日期, 进行 TRUNC 的操作, 按 'W' 进行 截取。

也就是 取得 本周第一天的操作。

下面是 取 年/季度/月/周/日期/小时 截取的例子。

SQL 执行的时间是 2010-10-17 22点多

SQL SELECT 'Year' AS truncType , TRUNC( SYSDATE, 'YYYY' ) FROM DUAL

2 UNION ALL

3 SELECT 'Quarter' AS truncType, TRUNC( SYSDATE, 'Q' ) FROM DUAL

4 UNION ALL

5 SELECT 'Month' AS truncType, TRUNC( SYSDATE, 'MM' ) FROM DUAL

6 UNION ALL

7 SELECT 'Week' AS truncType, TRUNC( SYSDATE, 'W' ) FROM DUAL

8 UNION ALL

9 SELECT 'Day' AS truncType, TRUNC( SYSDATE, 'D' ) FROM DUAL

10 UNION ALL

11 SELECT 'Hour' AS truncType, TRUNC( SYSDATE, 'HH' ) FROM DUAL;

TRUNCTYPE TRUNC(SYSDATE,'YYYY

-------------- -------------------

Year 2010-01-01 00:00:00

Quarter 2010-10-01 00:00:00

Month 2010-10-01 00:00:00

Week 2010-10-15 00:00:00

Day 2010-10-17 00:00:00

Hour 2010-10-17 22:00:00

6 rows selected.

有了 开始日期, 结束日期, 就是 开始 日期 + 6 就可以了。

oracle查询一周数据如何按列来显示

where

'2012-07-11 00:00:00'to_char(r.timetag,'yyyy-MM-dd hh24:mi:ss')

and

'2012-07-12 00:00:00'to_char(r.timetag,'yyyy-MM-dd hh24:mi:ss')

and

r.status=10

修改成:

--获取本周的数据,你也可自己修改为固定第几周的数据。

where

to_char(r.timetag,'WW') =to_char(sysdate,'WW')--这里表示本周,如果第10周,这里直接改为'10'即可

and

to_char(r.timetag,'YYYY') = to_char(sysdate,'YYYY') --这里表示本年的,如果要2011年,就直接改为'2011'

and

r.status=10


网站栏目:oracle怎么抓一周 oracle中怎么删除一行
网站链接:http://cdiso.cn/article/hhhhdi.html

其他资讯