This is ugly and uses T-SQL syntax but you get the idea.

SELECT id
FROM (
SELECT id, CAST(
CAST(year AS varchar)
+ '-' + CAST(CASE month WHEN 0 THEN 1 ELSE month END AS varchar)
+ '-' + CAST(CASE day WHEN 0 THEN 1 ELSE day END AS varchar)
AS datetime) as realdate
FROM aaa
) tmpT
WHERE realdate BETWEEN '2006-01-01' AND '2007-05-05'



On Mon, Mar 24, 2008 at 4:06 PM, Les Mizzell <[EMAIL PROTECTED]> wrote:

> I've got a database in which dates are stored as integers in three
> separate columns as: day|month|year
>
> This was done because the client wished to create records that could
> contain only a year, or just a year and month, or year, month, and day,
> or no date at all. Values in the columns default to "0" if nothing was
> entered.
>
> Bad idea. Really bad idea! Worked great at first, but as 'feature creep"
> has slowly reared its ugly head, this way of storing dates has caused me
> no end of headaches. They want to add a date search by range. So, you'd
> want to do something like:
>
>     and YEAR >= #form.from_y# and YEAR <= #form.to_y#
>     and MONTH >= #form.from_m# and MONTH <= #form.to_m#
>     and DAY >= #form.from_d# and DAY <= #form.to_d#
>
> So, let's say you have four records
>
> day|month|year
> 15 | 05  |2005
> 16 | 04  |2006
> 15 | 03  |2007
>  0 | 01  |2006
>
>
> Uh oh - that's not going to work. For example, searching for dates
> between 05/15/2006 and 04/16/2007 is looking at *integers* in the month
> column greater than 5 *and* less than 4, plus integers in the day column
> greater then 15 but less than 16. Whoops, no results returned.
>
> I've gotten myself into this mess. Is there any trick I can use in the
> queries to get myself out, or am a @[EMAIL PROTECTED]
>
> I should have NEVER let them talk me into letting them enter records
> without *complete* dates - but, the client is always right, huh? But,
> that was almost a year ago and they weren't asking for a date range
> search at the time either..
>
> Argh!
>
>
> 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Adobe® ColdFusion® 8 software 8 is the most important and dramatic release to 
date
Get the Free Trial
http://ad.doubleclick.net/clk;160198600;22374440;w

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:301990
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4

Reply via email to