Solved

Mysql How do you define a date range for the current month

Posted on 2011-09-20
5
378 Views
Last Modified: 2012-05-12
Hi
I am wanting to write a mysql query that only looks at the current month.
How would you write this where clause

My query:

SELECT *
FROM Task_assigned
Where Completed = 0 and DateDue between (this is where I do not know how to assign the range for the current month)
0
Comment
Question by:matthewdacruz
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
5 Comments
 
LVL 24

Expert Comment

by:mankowitz
ID: 36567660
if all you want is the month, then use the MYSQL month function. Seel below for january

SELECT *
FROM Task_assigned
Where Completed = 0 and MONTH(DateDue ) = 1


if all you want a specific month, you have to include the year as well.

SELECT *
FROM Task_assigned
Where Completed = 0 and MONTH(DateDue ) = 1 and YEAR(DateDue)=2011
0
 

Author Comment

by:matthewdacruz
ID: 36567725
Hi Thank you for your response.

Is there a way to dynamically define the month and year as the report needs to automatically grab each months tasks without having to  hard code it in?
0
 
LVL 92

Expert Comment

by:Patrick Matthews
ID: 36567767
In SQL Server you could do this with DATEDIFF/DATEADD; I presume something similar can be done in MySQL:

SELECT *
FROM Task_assigned
Where Completed = 0 and 
    DateDue >= DATEADD(month, DATEDIFF(month, '2000-01-01', GETDATE()), '2000-01-01') AND
    DateDue < DATEADD(month, DATEDIFF(month, '2000-01-01', GETDATE()) + 1, '2000-01-01')

Open in new window

0
 
LVL 24

Accepted Solution

by:
mankowitz earned 500 total points
ID: 36567872
I am not sure what you mean by dynamically. Are you calling this query from a scripting language? if so, your script could do it. Alternatively, if you want it to just print the current month, you could do this:

SELECT *
FROM Task_assigned
Where Completed = 0 and MONTH(DateDue ) = month(NOW()) and YEAR(DateDue)=YEAR(NOW())
0
 

Author Closing Comment

by:matthewdacruz
ID: 36568297
Thanks that worked perfect.
0

Featured Post

Moving data to the cloud? Find out if you’re ready

Before moving to the cloud, it is important to carefully define your db needs, plan for the migration & understand prod. environment. This wp explains how to define what you need from a cloud provider, plan for the migration & what putting a cloud solution into practice entails.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article shows the steps required to install WordPress on Azure. Web Apps, Mobile Apps, API Apps, or Functions, in Azure all these run in an App Service plan. WordPress is no exception and requires an App Service Plan and Database to install
By, Vadim Tkachenko. In this article we’ll look at ClickHouse on its one year anniversary.
Polish reports in Access so they look terrific. Take yourself to another level. Equations, Back Color, Alternate Back Color. Write easy VBA Code. Tighten space to use less pages. Launch report from a menu, considering criteria only when it is filled…
This is a high-level webinar that covers the history of enterprise open source database use. It addresses both the advantages companies see in using open source database technologies, as well as the fears and reservations they might have. In this…

624 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question