鍍金池/ 問答/數(shù)據(jù)庫/ 怎么將一列日期推算出對應的周六并輸入到另一列中

怎么將一列日期推算出對應的周六并輸入到另一列中

現(xiàn)有一列 DATE 數(shù)據(jù)為日期加時間,如:2018-01-01 15:00:30

現(xiàn)在希望將DATE列中的日期推算出對應的周六并按順序輸入到WEEKEND這列中,只要日期不要時間應該如何寫SQL語句?

如何改變下面的語句或者應如何寫?
select subdate(curdate(),date_format(curdate(),'%w')-6)

回答
編輯回答
莫小染

mysql日期操作函數(shù)了解下

DATE_FORMAT(DATE_ADD(`date`, INTERVAL 6-DATE_FORMAT(`date`,'%w') DAY), '%Y-%m-%d')

如果需要當今天是周六時存下周六日期的話,interval中間部分加個if即可。

2018年1月23日 08:20
編輯回答
墨小白

業(yè)務邏輯應該寫在程序里。盡量不用數(shù)據(jù)庫做邏輯運算。數(shù)據(jù)庫主要存取數(shù)據(jù),做報表等等。

艸,我說的不對?業(yè)務邏輯不應該寫在程序里?你寫數(shù)據(jù)庫邏輯,等以后重構有的愁。-隱藏我的回答干雞毛?

Ps,非要寫書據(jù)庫邏輯也可以:update table set saturday = SELECT date(myDate + INTERVAL 7 - weekday(myDate) DAY);

2018年3月17日 07:18
編輯回答
涼心人

可以嘗試下使用以下sql,但是數(shù)據(jù)庫不適合做這種運算。

UPDATE table_name SET WEEKEND = subdate(date_format(`DATE`,'%Y-%m-%d'),date_format(`DATE`,'%w')-6)
2018年4月22日 05:25