We help IT Professionals succeed at work.

Help with a date query

jasch2244
jasch2244 asked
on
169 Views
Last Modified: 2013-12-24
I need help with a query.  I need to be able to pull dates from current year to last year in the database (so that it can be used by multiple users for my system). I'm trying to populate a select jump menu with dates. I would like to run a query and have it loop through the select feild due to the dates in the database (current year all the way to the earliest year in the database). How in the hell do you do this?
<cfparam name="URL.cDate" default="#Year(Now())#">
<cfset CurrentYear = Year(Now())>
<cfset FourYearsAgo = CurrentYear - 4>/////// or earliest year in database/////////
 
<cfoutput>
	<form action="#CGI.SCRIPT_NAME#" method="get">
		<select name="cDate" id="cDate" onChange="this.form.submit();">
    		<option value=""></option>
			<cfloop from="#CurrentYear#" to="#FourYearsAgo#" index="yearNum" step="-1">
	    	<option value="#yearNum#" <cfif yearNum eq URL.cDate>selected</cfif>>#yearNum#</option>
	    	</cfloop>
		</select>
	</form>
</cfoutput>

Open in new window

Comment
Watch Question

This one is on us!
(Get your first solution completely free - no credit card required)
UNLOCK SOLUTION

Author

Commented:
I'm using MySQL will it make a differnece? I'm still a newb
The MIN and YEAR functions are supported by MySQL, so it should work fine.
CERTIFIED EXPERT
Most Valuable Expert 2015

Commented:
>  CurrentYear - 4>/////// or earliest year in database/////////

    To do that, you would need a slight modification of usachrisk1983's suggestion. Something like this
    would return the earliest year in the database OR 4 years ago.  


      <cfquery name="qryGetOldestYear" datasource="yourDSN">
          SELECT  Year(Min(YourDateColumn)) AS MinYear
          FROM    YourTable
          WHERE   YourDateColumn IS NOT NULL
          GROUP  BY YourDateColumn
          UNION
          SELECT   Year(Date())
          ORDER BY MinYear ASC
          LIMIT 1
</cfquery>

Author

Commented:
usachrisk1983:

I keep getting the values #yearNum# for option tag values. This is the index but apparently is not relating to the year (can't have a number as a variable for the index"" portion. If I can somehow get that to come down from 2009 (now() function). I hope this make sense.
CERTIFIED EXPERT
Most Valuable Expert 2015

Commented:
Here is better example that works with MySQL:
<cfparam name="URL.cDate" default="#Year(Now())#">
 
<cfquery name="getData" datasource="YourMYSQLDataSource">
   SELECT  Year(MIN(YourDateColumn)) AS MinYear 
   FROM    YourTable
   WHERE   YourDateColumn IS NOT NULL
   UNION
   SELECT Year(CurDate())-4 AS MinYear 	
   ORDER BY MinYear ASC
   LIMIT 1	
</cfquery>
 
<cfoutput>
<form action="#CGI.SCRIPT_NAME#" method="get">
   <select name="cDate" id="cDate" onChange="this.form.submit();">
      <option value=""></option>
      <cfloop from="#Year(Now())#" to="#getData.MinYear#" index="yearNum" step="-1">
         <option value="#yearNum#" <cfif yearNum eq URL.cDate>selected</cfif>>#yearNum#</option>
      </cfloop>
   </select>
</form>
</cfoutput>

Open in new window

CERTIFIED EXPERT
Most Valuable Expert 2015
Commented:
This one is on us!
(Get your first solution completely free - no credit card required)
UNLOCK SOLUTION

Author

Commented:
agx_ thanks but I was looking more for what usachrisk1983: was doing ... I never wanted to go back just 4 years but all the way back to the earliest date. Good idea though

Gain unlimited access to on-demand training courses with an Experts Exchange subscription.

Get Access
Why Experts Exchange?

Experts Exchange always has the answer, or at the least points me in the correct direction! It is like having another employee that is extremely experienced.

Jim Murphy
Programmer at Smart IT Solutions

When asked, what has been your best career decision?

Deciding to stick with EE.

Mohamed Asif
Technical Department Head

Being involved with EE helped me to grow personally and professionally.

Carl Webster
CTP, Sr Infrastructure Consultant
Empower Your Career
Did You Know?

We've partnered with two important charities to provide clean water and computer science education to those who need it most. READ MORE

Ask ANY Question

Connect with Certified Experts to gain insight and support on specific technology challenges including:

  • Troubleshooting
  • Research
  • Professional Opinions
Unlock the solution to this question.
Join our community and discover your potential

Experts Exchange is the only place where you can interact directly with leading experts in the technology field. Become a member today and access the collective knowledge of thousands of technology experts.

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.