Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
?
Solved

What's the informix SQL for end of month?

Posted on 2014-04-07
5
Medium Priority
?
673 Views
Last Modified: 2014-10-22
Hi All

I'm butchering my way through creating my first Informix procedure (SQL expert, Informix N00b) and I'm passing a year and month as integers.

Question:  Given year and month number, what's the function for automagically determining the last day of that year-month?  For example, year=2010 and month=9 should return the date 2010-09-30.  Should go in line 17 of the below code block.

Thanks.
Jim

CREATE PROCEDURE informix.sales_distribution(iYear int, iMonth int, iWeekNumber int)

define dtStart DATETIME YEAR TO DAY;
define dtEnd DATETIME YEAR TO DAY;

if iWeekNumber = 1 then
   let dtStart = to_date(to_char(iYear) || "-" || to_char(iMonth) + || "-01") 
   let dtEnd = to_date(to_char(iYear) || "-" || to_char(iMonth) + || "-07")
elseif iWeekNumber = 2 then 
   let dtStart = to_date(to_char(iYear) || "-" || to_char(iMonth) + || "-08") 
   let dtEnd = to_date(to_char(iYear) || "-" || to_char(iMonth) + || "-14")
elseif iWeekNumber = 3 then
   let dtStart = to_date(to_char(iYear) || "-" || to_char(iMonth) + || "-15") 
   let dtEnd = to_date(to_char(iYear) || "-" || to_char(iMonth) + || "-21")
elseif iWeekNumber = 4 then
   let dtStart = to_date(to_char(iYear) || "-" || to_char(iMonth) + || "-22") 
   let dtEnd = to_date(to_char(iYear) || "-" || to_char(iMonth) + || "-07")   -- ????
end if;

Open in new window

0
Comment
Question by:Jim Horn
  • 2
4 Comments
 
LVL 6

Accepted Solution

by:
Dulton earned 2000 total points
ID: 39983835
wrap what you're assigning dtEnd on line 17 in LAST_DAY(), it takes a date or datetime argument.

CREATE PROCEDURE informix.sales_distribution(iYear int, iMonth int, iWeekNumber int)

define dtStart DATETIME YEAR TO DAY;
define dtEnd DATETIME YEAR TO DAY;

if iWeekNumber = 1 then
   let dtStart = to_date(to_char(iYear) || "-" || to_char(iMonth) + || "-01") 
   let dtEnd = to_date(to_char(iYear) || "-" || to_char(iMonth) + || "-07")
elseif iWeekNumber = 2 then 
   let dtStart = to_date(to_char(iYear) || "-" || to_char(iMonth) + || "-08") 
   let dtEnd = to_date(to_char(iYear) || "-" || to_char(iMonth) + || "-14")
elseif iWeekNumber = 3 then
   let dtStart = to_date(to_char(iYear) || "-" || to_char(iMonth) + || "-15") 
   let dtEnd = to_date(to_char(iYear) || "-" || to_char(iMonth) + || "-21")
elseif iWeekNumber = 4 then
   let dtStart = to_date(to_char(iYear) || "-" || to_char(iMonth) + || "-22") 

   let dtEnd = LAST_DAY(to_date(to_char(iYear) || "-" || to_char(iMonth) + || "-07"))
end if; 

Open in new window


http://pic.dhe.ibm.com/infocenter/idshelp/v115/index.jsp?topic=%2Fcom.ibm.sqls.doc%2Fids_sqs_1538.htm
0
 
LVL 66

Author Comment

by:Jim Horn
ID: 39983865
... looking ...
0
 
LVL 143

Expert Comment

by:Guy Hengel [angelIII / a3]
ID: 40396759
I've requested that this question be closed as follows:

Accepted answer: 500 points for Dulton's comment #a39983835

for the following reason:

This question has been classified as abandoned and is closed as part of the Cleanup Program. See the recommendation for more details.
0
 
LVL 66

Author Closing Comment

by:Jim Horn
ID: 40396760
I moved on to a different gig and can't verify this, but I suspect this is the correct answer.  Thanks.
0

Featured Post

Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

Question has a verified solution.

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

In this blog post, we’ll look at how using thread_statistics can cause high memory usage.
Creating a Cordova application which allow user to save to/load from his Dropbox account the application database.
In this video, Percona Solution Engineer Rick Golba discuss how (and why) you implement high availability in a database environment. To discuss how Percona Consulting can help with your design and architecture needs for your database and infrastr…
The Relationships Diagram is a good way to get an overall view of what a database is keeping track of. It is also where relationships are defined. A relationship specifies how two tables connect to each other. As you build tables in Microsoft Ac…
Suggested Courses

564 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