使用to_char和next_day函式得到本週的第一天和最後一天日期
準確來說一個禮拜是從星期日開始到星期六結束的,而我們自己的習慣都是按一個禮拜的第一天為星期一,最後一天為星期日來的。
很多的查詢條件和統計都需要求得一週的時間段,也就是星期一到星期日的時間段, 我們用to_char和next_day兩個函式分別可以求得第一天和最後一天的日期。
1、TO_CHAR 結合 DECODE、TO_NUMBER 函式求得
/** 使用TO_CHAR(SYSDATE,'D')可以求得當前日期是一週的第幾天
得到的結果是星期日開始作為第1天的,
那麼星期一就是第2天,星期日就是第8天
*/
SELECT TO_CHAR( SYSDATE ,'YYYY-MM-DD' ) 今天,
DECODE(TO_CHAR(SYSDATE,'D'),
'1','星期日',
'2','星期一',
'3','星期二',
'4','星期三',
'5','星期四',
'6','星期五',
'7','星期六') 星期幾,
TO_CHAR( SYSDATE - TO_NUMBER( TO_CHAR(SYSDATE,'D') ) + 2,'YYYY-MM-DD' ) 星期一,
TO_CHAR( SYSDATE - TO_NUMBER( TO_CHAR(SYSDATE,'D') ) + 8,'YYYY-MM-DD' ) 星期日
FROM DUAL
得到的結果是星期日開始作為第1天的,
那麼星期一就是第2天,星期日就是第8天
*/
SELECT TO_CHAR( SYSDATE ,'YYYY-MM-DD' ) 今天,
DECODE(TO_CHAR(SYSDATE,'D'),
'1','星期日',
'2','星期一',
'3','星期二',
'4','星期三',
'5','星期四',
'6','星期五',
'7','星期六') 星期幾,
TO_CHAR( SYSDATE - TO_NUMBER( TO_CHAR(SYSDATE,'D') ) + 2,'YYYY-MM-DD' ) 星期一,
TO_CHAR( SYSDATE - TO_NUMBER( TO_CHAR(SYSDATE,'D') ) + 8,'YYYY-MM-DD' ) 星期日
FROM DUAL
2、NEXT_DAY 結合 SUBSTR 函式求得
/** SUBSTR代替DECODE函式
NEXT_DAY 函式可以指定當前日期的下一個星期幾的日期
比如:今天是11-25日,星期六,那麼 NEXT_DAY(sysdate,'星期一')
得到的日期就是11-27,那麼這個星期一的日期就是 11-27 減去 7天
而星期日的日期就是11-27減去1天
*/
SELECT TO_CHAR( SYSDATE ,'YYYY-MM-DD' ) 今天,
'星期'||SUBSTR('日一二三四五六',TO_NUMBER(TO_CHAR(SYSDATE,'D')),1) 星期幾,
TO_CHAR(NEXT_DAY(sysdate,'星期一') - 7,'YYYY-MM-DD') 星期一,
TO_CHAR(NEXT_DAY(sysdate,'星期一') - 1 ,'YYYY-MM-DD') 星期日
FROM DUAL
NEXT_DAY 函式可以指定當前日期的下一個星期幾的日期
比如:今天是11-25日,星期六,那麼 NEXT_DAY(sysdate,'星期一')
得到的日期就是11-27,那麼這個星期一的日期就是 11-27 減去 7天
而星期日的日期就是11-27減去1天
*/
SELECT TO_CHAR( SYSDATE ,'YYYY-MM-DD' ) 今天,
'星期'||SUBSTR('日一二三四五六',TO_NUMBER(TO_CHAR(SYSDATE,'D')),1) 星期幾,
TO_CHAR(NEXT_DAY(sysdate,'星期一') - 7,'YYYY-MM-DD') 星期一,
TO_CHAR(NEXT_DAY(sysdate,'星期一') - 1 ,'YYYY-MM-DD') 星期日
FROM DUAL
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10742223/viewspace-341803/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle-獲取本週、本月、本季、本年的第一天和最後一天Oracle
- js 獲取某月第一天和最後一天JS
- Oracle 取本週第一天,最後一天Oracle
- C#獲取當月第一天和最後一天C#
- ORACLE TO_CHAR()函式中日期格式的使用Oracle函式
- PHP獲取本月第一天和上個月第一天的日期PHP
- MYSQL中取當前年份的第一天和當前周,月,季度的第一天/最後一天MySql
- Mysql 獲取當月和上個月第一天和最後一天的解決方案MySql
- Oracle 中的 TO_DATE 和 TO_CHAR 函式 日期處理Oracle函式
- python 獲取一段時間內,每個月的第一天和最後一天Python
- oracle to_char函式的使用Oracle函式
- 函式: 獲得每月的最後一天函式
- 日期加一天的函式函式
- Shell 計算明天和昨天日期的函式(轉)函式
- MYSQL獲取當前年、季、月、周第一天、最後一天的日期/時間戳MySql時間戳
- sqlserver時間函式獲取本月最後一天SQLServer函式
- JavaScript 獲取月份最後一天日期JavaScript
- oracle to_char 函式Oracle函式
- oracle to_char函式Oracle函式
- java 獲取上月、一個月最後一天、週一、週日、本月日期Java
- JavaScript獲取每個月最後一天的日期JavaScript
- to_char函式不要使用hh格式函式
- 使用TO_Char()函式如何取自然周函式
- 【函式】Oracle EXTRACT()函式與to_char() 函式函式Oracle
- MySQL如何獲取當前時間的前一天和後一天時間MySql
- 字元函式、數字函式和日期函式字元函式
- 【Tip】使用TO_DATE和TO_CHAR函式讓Oracle自己去數數函式Oracle
- ORACLE to_char函式詳解Oracle函式
- oracle中ascii函式及to_char函式使用及編碼間的轉換OracleASCII函式
- 判斷一週的某一天的函式介面函式
- MYSQL事件使用 日期函式MySql事件函式
- MySQL 的日期和時間函式MySql函式
- 有關日期的SAP函式使用函式
- 第一週第一天1.1
- oracle中函式to_char()的用法介紹Oracle函式
- Oracle OCP(03):字元函式、數字函式和日期函式Oracle字元函式
- MySql中時間和日期函式MySql函式
- php判斷本週,上週與上上週的日期PHP