【发布时间】:2017-04-20 20:15:35
【问题描述】:
我正在尝试从下表中获取所有“项目”ID,条件为 uid='1' 和 Month='August' 和 Year='2016'
date | uid | project
-------------------------------------------
Wed, 01 Aug 2016 | 1 | 11
Tue, 15 Aug 2016 | 2 | 11
Mon, 31 Aug 2016 | 1 | 11
Thu, 05 Sep 2016 | 1 | 12
Sat, 10 Sep 2016 | 2 | 12
Mon, 12 Feb 2017 | 3 | 12
Tue, 31 Feb 2017 | 1 | 13
Wed, 31 Mar 2017 | 2 | 13
Fri, 31 Mar 2017 | 3 | 13
Thu, 31 Mar 2017 | 1 | 14
下面是我使用的查询
SELECT project FROM logs where uid="1" AND MONTHNAME(STR_TO_DATE(date,'%W, %d %M %Y'))="August" AND YEAR(STR_TO_DATE(date,'%W, %d %M %Y'))="2016";
但它也会返回其他月份的记录。我在这里做错了什么?
【问题讨论】:
-
AND date like '%Aug%' AND date like '%2016%'保持简单。 -
如果你对这个项目不太了解,你应该考虑使用mysql的内置日期函数。你现在做的工作量很大