【发布时间】:2014-09-01 15:00:11
【问题描述】:
我有这部分 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)";
...但它似乎不起作用。
【问题讨论】:
-
你能发布一些数据让我们了解你想要什么
-
为了更好地理解,我有这个小提琴,它可以选择员工一周的不同数据。 sqlfiddle.com/#!2/130d8e/1
-
那是什么问题? sqlfiddle.com/#!2/130d8e/25
-
就是这样。谢谢你。我忘记了 MONTH() 没有参数 1 或类似的东西。今天工作太多了。
-
哦,好的,我会发布答案:)
标签: php mysql sql date datetime