真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

oracle怎么寫周幾 oracle取每個周五

oracle中設(shè)置星期幾是什么函數(shù)

select?sysdate,to_char(sysdate,'d')?from?dual;

前鋒ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!

2014/2/14 20:23:20 6

星期五 是6

星期六 是7

星期天 是1

其他類推

Oracle計算周數(shù)的幾種方式

比如星期一到星期天算一周 查2011年7月完整周數(shù) select max(count1) - 1 from (SELECT count(1) count1 FROM DUAL WHERE TO_CHAR(ADD_MONTHS(LAST_DAY(to_date('201107', 'yyyyMM')), -1) + LEVEL, 'DAY') = '星期一' CONNECT BY LEVEL

oracle取得周數(shù)什么時候是oracle標(biāo)準(zhǔn)

[Oracle] 日期處理

本篇是針對以上一篇中 “獲取日期的星期” 部分的展開。

計算標(biāo)準(zhǔn)

Oracle 里支持兩種標(biāo)準(zhǔn)的時間, 一種是oracle 自身的標(biāo)準(zhǔn), 另一種是ISO 的標(biāo)準(zhǔn)1. oralce 標(biāo)準(zhǔn)

1) 每年的 1 月1號作為這一年的第一天。(不管這一天是星期幾)比如: 2013/01/01 是星期二, 這一天作為2013年的第一天。

2) 周數(shù)計算公式 week = int(dayOfYear+6)/7 ; dayOfYear 是這一天是這一年的第幾天3) 周數(shù)區(qū)間: 1-53

2. ISO標(biāo)準(zhǔn)

1)每個星期總是從周一開始,周日結(jié)束

2)如果1月1日是周五、周六或周日,則這一周算為上一年的最后一周,因為這周的大部分時間屬于上一年3)如果1月1日是周一、周二、周三或周四,則這一周算為新年的第一周,因為這周的大部分時間屬于新的一年4)時間區(qū)間: 1-52 or 1-53

舉例來說: 對于1998和1999年的1月1日,1998年是算第一周,而1999年的1月1日卻算為上一年的最后一周。

Table 3-7 First ISO Week of the Year: Example 1, January 1998MoTuWeThFrSaSuISO Week

---12341 ISO week of 1998

5678910112 ISO week of 1998

121314151617183 ISO week of 1998

192021222324254 ISO week of 1998

262728293031-5 ISO week of 1998

Table 3-8 First ISO Week of the Year: Example 2, January 1999MoTuWeThFrSaSuISO Week

----12353 ISO week of 1998

456789101 ISO week of 1999

111213141516172 ISO week of 1999

181920212223243 ISO week of 1999

252627282930314 ISO week of 1999

Oracle中獲取年份

1. oralce 標(biāo)準(zhǔn) - YYYY

oralce 標(biāo)準(zhǔn)獲取年份的方式很簡單:

[sql] view plain copy 在CODE上查看代碼片派生到我的代碼片select TO_CHAR(TO_DATE('1997/01/01','YYYY/MM/DD'), 'YYYY') from dual;select TO_CHAR(TO_DATE('1997/12/31','YYYY/MM/DD'), 'YYYY') from dual;都是返回 1997

2. iso 標(biāo)準(zhǔn) - IYYY

[sql] view plain copy 在CODE上查看代碼片派生到我的代碼片select TO_CHAR(TO_DATE('1997/01/01','YYYY/MM/DD'), 'IYYY') from dual;select TO_CHAR(TO_DATE('1997/12/31','YYYY/MM/DD'), 'IYYY') from dual;返回: 1997, 1998

是不是很奇怪, 1997/12/31 號的年份是 1998 .

其實原因很簡單, 根據(jù)上面的標(biāo)準(zhǔn), 1998年1月1日是周四,則這一周算為新年的第一周,因為這周的大部分時間屬于1998. 所以1997/12/31 也屬于1998 年的第一周, 所以得到的是 1998.

你可能會想:

這是否因因為上面把字串轉(zhuǎn)為日期的時候使用了YYYY這種格-- TO_DATE('1997/12/31','YYYY/MM/DD'), 如果使用TO_DATE('1997/12/31','IYYY/MM/DD'), 'IYYY') 是否可以? 不幸的是, oracle 不支持這種用法。

假設(shè)當(dāng)天是 1997/12/31 , 使用 TO_CHAR(sysdate,'IYYY') , 發(fā)現(xiàn)同樣獲得的是 1998.

總結(jié)一下: 如果從string 轉(zhuǎn)換為日期, 如果只取這個日期的年份的話, 最好使用 YYYY。

Oracle 獲取周數(shù)

要獲取某一天是這一年的第幾周, 同樣有兩種標(biāo)準(zhǔn)的區(qū)別:

1. oracle 標(biāo)準(zhǔn) - WW

這種標(biāo)準(zhǔn)和算法看起來很傻瓜。 int(dayOfYear+6)/7[sql] view plain copy 在CODE上查看代碼片派生到我的代碼片select TO_CHAR(TO_DATE('1997/01/01','YYYY/MM/DD'), 'YYWW') from dual;select TO_CHAR(TO_DATE('1997/01/08','YYYY/MM/DD'), 'YYWW') from dual;select TO_CHAR(TO_DATE('1997/12/31','YYYY/MM/DD'), 'YYWW') from dual;很簡單; 返回 9701 ,9702,9753

不過這種標(biāo)準(zhǔn)在一般的公司使用的應(yīng)該會比較少。

2. iso 標(biāo)準(zhǔn) - IW

[sql] view plain copy 在CODE上查看代碼片派生到我的代碼片select TO_CHAR(TO_DATE('1997/01/01','YYYY/MM/DD'), 'IYIW') from dual;select TO_CHAR(TO_DATE('1997/12/31','YYYY/MM/DD'), 'IYIW') from dual;返回: 9701,9801

如上所述, 1997/12/31 歸到 1998 年的第一周。

需要特別提醒的是:(本篇的精華)

年份 和 周數(shù)要使用同樣的標(biāo)準(zhǔn), 不要混著使用,比如 : YYIW -- oracle 的年份, ISO的周數(shù)IYWW

否則的話, 會得到一些錯誤的結(jié)果。

[sql] view plain copy 在CODE上查看代碼片派生到我的代碼片select TO_CHAR(TO_DATE('1997/12/31','YYYY/MM/DD'), 'YYIW') from dual;返回:9701

整整少了一年。

而且這種錯誤在不跨年的狀況上你可能還不會發(fā)現(xiàn), 一跨年, 發(fā)現(xiàn)又回到了一年前 ^^

如何從oracle中查到每個月中有幾周,每周的日期段從幾號到幾號?

有幾周,把每個月的最后一天拼成串傳到如下SQL:

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

每周日期段沒找到直接的,可以自己寫個函數(shù):

1、獲取1號是周幾,如周4;

2、則1-4號為第一周,即1號+(7-4)天=4號;

3、循環(huán):4+1=5號——4+7=11號為第二周;

直到:某周加完后的日期,大于該月的最大天數(shù),則取該月最大天數(shù)收尾,循環(huán)結(jié)束;

第二種方法是你建個存日期的表:

date week

……

20110101

20110102

……

里面存N年的日期,然后根據(jù)

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

然后直接根據(jù)這張表寫SQL就直接獲取幾周,每周是幾號到幾號了。。。


網(wǎng)站題目:oracle怎么寫周幾 oracle取每個周五
分享路徑:http://weahome.cn/article/hjigsh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部