Guys,
I guess I'm the newest SQLite person on this email list and I know I'm
definitely the dumbest. It seems like a lot of you are trying to justify why
two dates that are one minute apart can have a function say they're one month
apart. Don't look at it that way. Back when mainframes and dinosaurs ruled the
world I used to be a fairly decent programmer, now I run a small company, so
today I'm coming from a business standpoint not a programmer one.
To give some background, we're in the process of embedding SQLite into our
application, and yes it's an awesome product. Our software sits on top of huge
data warehouses (hundreds of millions of rows) which are typically either
Oracle or SQL Server. We run queries against these databases and store the
result sets in SQLite, where we run subsequent queries to filter & format the
output.
A huge number of businesses are date driven. Publishers want to renew
subscriptions before they expire. Insurance companies need to renew policies.
Our largest client sells service contracts which have a start & end date. So
it's an everyday occurrence for a manager to want to know how many customers
will expire within the next three months, or what an average contract length is
in months.
My request was for a new date function that returns the difference, or
"calendar interval" if you prefer, between two dates. Without such a function
we must say:
WHERE (strftime('%Y', LaborEndDate)*12+strftime('%m', LaborEndDate)) -
(strftime('%Y', LaborStartDate)*12+strftime('%m', LaborStartDate)) < 3
Wow. This is quite a mouthfull for something that's so commonly needed, and
it's harder to generate SQL automatically when a user clicks a checkbox.
Clearly it's far simpler (and easier to program) if we could say:
WHERE datediff('month', LaborEndDate, LaborStartDate) < 3
Datediff also supports years, weeks, days, hours, seconds, and milliseconds.
It's just a quick & easy way to make life easier. But.. of course I know the
SQLite team can't slap in every enhancement that somebody suggests; so I just
wanted to explain why this would be useful for some of us. We do have a vested
interest in the product!
- Jeff
________________________________
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Sent: Thu 1/17/2008 9:21 PM
To: [email protected]
Subject: Re: [sqlite] Date arithmetic question
Gerry Snyder <[EMAIL PROTECTED]> wrote:
> [EMAIL PROTECTED] wrote:
> >
> > So datediff('month', '2008-02-01 23:59:59','2008-01-31 00:00:00') should
> > return 1 even though the difference is really only 1 second? Seems
> > goofy to me....
> >
> >
>
> I have been staring at this until I'm getting goofy.
>
> Written as it is, isn't the time interval 1 second short of two days?
>
> If you want an interval of 1 second shouldn't it be
>
> datediff('month', '2008-02-01 00:00:00','2008-01-31 23:59:59')
>
> ?
>
>
> Gerry, more confused than usual (as usual)
>
Yeah. I got it backwards. Sorry.
--
D. Richard Hipp <[EMAIL PROTECTED]>
-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------