mysql 獲取當前日期週一和週日

select subdate(curdate(),date_format(curdate(),'%w')-1)//獲取當前日期在本週的週一  mysql

select subdate(curdate(),date_format(curdate(),'%w')-7)//獲取當前日期在本週的週日  sql

這兩句語句是mysql用來取當前日期的週一或週日的一個方法,那麼這句如何運做的呢?  api

  

%w 是以數字的形式來表示週中的天數( 0 = Sunday, 1=Monday, . . ., 6=Saturday),0爲週日,6爲週六,跟咱們通常的認知,一週是從週一開始的並不同。  函數

  

date_format是一個日期轉換函數  orm

  

date_format(curdate(),'%w') 表示當前日期到上週週日共有幾天的間隔,即當前日期減去上週週日的日期=天數(例:curdate()爲2011-01-11,那麼上週週日爲 2011-01-09,二者相減爲2)因此若單獨輸出這一句:select date_format(curdate(),'%w') 結果就是2  form

  

在mysql api裏對於subdate函數是這樣解釋的:  date

SELECT SUBDATE(NOW( ), 1) AS 'Yesterday',  select

SUBDATE(NOW( ), INTERVAL -1 DAY) AS 'Tomorrow';  方法

正值爲昨天,負值爲明天,當前時間的起點,就是當前時間的上週週日  時間

  

subdate函數就是用當前時間減去2天,獲得上週週日的時間爲2011-01-09  

那麼若是運行select subdate(curdate(),date_format(curdate(),'%w')-2)這句,就表示用當前時間-(2-2),即-0,獲得的結果就是當前日期自己了。  

  

若是把%w換成%d呢  

%d 是用兩位數字來表示月中的天數( 00, 01, . . ., 31)  

直接輸出的結果就應該是11,表示當前日期在一個月內是第幾天  

select date_format('2011-01-11','%d')  

放到開始的語句裏就表示用當前時間減去11,結果爲2010-12-31  

select subdate('2011-01-11',date_format('2011-01-11','%d'))

相關文章
相關標籤/搜索