簡體   English   中英

MySQL上個月而不是特定的星期

[英]MySQL getting last month instead of specific week

我在SQL語句的這一部分中,根據輸入日期選擇一個星期:

SELECT DATE_FORMAT(md.`mydate`, '%d.%m.%Y'),
...
DAYNAME(md.`mydate`) FROM `mydates` md
LEFT JOIN (SELECT * FROM `import` 
    WHERE `Zeitspanne` != 'Anwesenheit' 
    AND `Person` = '".mysql_real_escape_string($expName)."') g 
    ON (md.`mydate` =  STR_TO_DATE(g.`Datum`, '%d.%m.%Y') )
WHERE WEEK(md.`mydate`,1) = WEEK('".$getStart[2].$d.$getStart[1].$d.$getStart[0]."',1)
AND YEAR(md.`mydate`) = YEAR('".$getStart[2].$d.$getStart[1].$d.$getStart[0]."')";

現在,我想選擇上個月(在本例中為9月),而不是像這樣的用戶特定周:

LEFT JOIN (
    SELECT * FROM `import` 
    WHERE `Zeitspanne` != 'Anwesenheit' 
    AND `Person` = '".mysql_real_escape_string($expName)."') g 
    ON (md.`mydate` =  STR_TO_DATE(g.`Datum`, '%d.%m.%Y') )
WHERE MONTH(md.`mydate`,1) = MONTH('".$getStart[2].$d.$getStart[1].$d.$getStart[0]."' - INTERVAL 1 MONTH)) 
AND YEAR(md.`mydate`) = YEAR('".$getStart[2].$d.$getStart[1].$d.$getStart[0]."' - INTERVAL 1 MONTH)";

...但似乎不起作用。

問題是您要向MONTH()傳遞一個附加參數,我也不認為您需要在YEAR上進行間隔(但是您可能不確定)

WHERE MONTH(md.mydate,1)更改為WHERE MONTH(md.mydate)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM