select to_char(TO_DATE('20171123', 'YYYYMMDD'), 'yyyyiw') as week, --oracle求当年的第几周
公司主营业务:成都网站设计、成都网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联建站是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联建站推出西宁免费做网站回馈大家。
to_char(TO_DATE('20171123', 'YYYYMMDD'), 'yyyyww') as week2, --oracle求当年的第几周
to_char(TO_DATE('20171123', 'YYYYMMDD'), 'yyyy') as year, --oracle求第几年
to_char(TO_DATE('20171123', 'YYYYMMDD'), 'yyyymm') as month, --oracle求当年的第几月
to_char(TO_DATE('20171123', 'YYYYMMDD'), 'yyyyddd') as day, --oracle求当年的第几天
to_char(TO_DATE('20171123', 'YYYYMMDD'), 'yyyyq') as quarter -- oracle求当年的第几季度
from dual
-----------
SELECT
to_char(sysdate,'day') 星期几,
to_char(SYSDATE,'ddd') 第几天,
to_char(SYSDATE,'ww') 第几周,
to_char(SYSDATE,'mm') 第几月,
to_char(SYSDATE,'q') 第几季
FROM dual
使用sql语句查询日期在一周内的数据 select * from ShopOrder where datediff(week,ordTime,getdate()-1)=0 //查询当天日期在一周年的数据 select * from ShopOrder where datediff(day,ordTime,getdate()-1)=0 //查询当天的所有数据 SELECT * F...
1、首先需要打开Oracle数据库使用sysdate获取时间,输入命令select sysdate from dual回车确定。
2、然后进入页面之后,再输入执行命令语句:select sysdate(),回车键确定。
3、最后,点击之后,就可以看到页面的左下角的时间就出来了,可以看到已经获取了最后更新时间。
最近遇到业务需求,需要按周统计数据。
思考再三想到可以使用每周周一来计算。
故写出如下获得系统当前月份所有周一的语句。
select * from (
--转化成周一去重
select distinct trunc(t.day,'iw') as mon from (
--获取本月所有日期集合
SELECT trunc(sysdate, 'mm') + LEVEL - 1 DAY
FROM DUAL
CONNECT BY trunc(sysdate, 'mm') + LEVEL - 1 =
last_day(trunc(sysdate))
)t
)a
--移除非本月的周一
where trunc(a.mon, 'mm') = trunc(sysdate, 'mm')
ORDER BY MON
注:
trunc(sysdate,'iw') 语句可以获取本周周一的日期 (date类型)
trunc(sysdate,'iw') +1 可以获取本周周二的日期。
以此类推
(可以把sysdate换成其它时间)
通过 对日期, 进行 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 就可以了。
当月数据
select * from table t
where t.create_time
=TRUNC(SYSDATE, 'MM')
and
t.create_time=last_day(SYSDATE) create_time为你要查询的时间
当年数据
select * from table t
where t.create_time
=trunc(sysdate,'YYYY')
and
t.create_time=add_months(trunc(sysdate,'YYYY'),12)-1
本周(国外周日为一个星期第一天)
where t.create_time =trunc(sysdate,'day')+1 and
t.create_time=trunc(sysdate,'day')+6 本周(国内周一为一个星期第一天)
where t.create_time =trunc(next_day(sysdate-8,1)+1) and
t.create_time=trunc(next_day(sysdate-8,1)+7)+1