我正在寫一個視圖的語法來查找數據庫中的時間戳col大於或等於第一個星期一的日期去年四月。由於四月份的第一個星期一與當前日期相關,因此我無法使用靜態日期。MySQL視圖的語法,where子句大於或等於最後一個四月的第一個星期一
任何指針,將不勝感激。我花了相當長的時間試圖弄清楚如何用MySQL的日期時間函數來做這件事,而且迄今爲止還沒有任何運氣!你可以做到這一點
我正在寫一個視圖的語法來查找數據庫中的時間戳col大於或等於第一個星期一的日期去年四月。由於四月份的第一個星期一與當前日期相關,因此我無法使用靜態日期。MySQL視圖的語法,where子句大於或等於最後一個四月的第一個星期一
任何指針,將不勝感激。我花了相當長的時間試圖弄清楚如何用MySQL的日期時間函數來做這件事,而且迄今爲止還沒有任何運氣!你可以做到這一點
得到最後明年的4月1日之間的合作四月當前日期:
SELECT YEAR(DATE_ADD(CURDATE(), INTERVAL ((4-MONTH(CURDATE()))%24-12)%12 MONTH));
:爲當前日期今年4
SELECT DATE_ADD(CURDATE(), INTERVAL ((4-MONTH(CURDATE()))%24-12)%12 MONTH);
GET年
得到第一個星期一2013年4月的,例如:
SELECT DATE_SUB('2013-04-07',INTERVAL WEEKDAY('2013-04-07') DAY);
獲得去年四月份的第一個星期一:
SELECT DATE_SUB(CONCAT(YEAR(DATE_ADD(CURDATE(), INTERVAL ((4-MONTH(CURDATE()))%24-12)%12 MONTH)),"-04-07"),INTERVAL WEEKDAY(CONCAT(YEAR(DATE_ADD(CURDATE(), INTERVAL ((4-MONTH(CURDATE()))%24-12)%12 MONTH)),"-04-07")) DAY);
一種方法是以下SQL:
SELECT * FROM DATA WHERE year(adddate(created_at, interval 9 month)) >= year(curdate());
這只是9個月轉移到一切未來,所以2013年4月1日將顯示爲2014年1月1日爲where條款的目的。
你也可以3個月移一切回來,但你也必須轉移CURDATE,以確保其1月1日和
謝謝,這個工作一種享受! – ThePHPUnicorn