Обсуждение: porting time calcs to PG
I'm trying to port an MS statement that's a bit involved with timestamps, and I don't see anything in the docs to lead me forward. It's basically a select statement, looking for records with a timestamp within a certain range, where that range is calculated with one of the fields. The WHERE clause that I use in SQL Server is: getdate() + ((2100 + 5 + (9*Points)) / 86400) >= DueTime Where the numbers are actually parameters passed in to the function. Other than changine getdate() to now(), I'm not sure how to change the + interval to be effective. All the docs I see use something like interval '1 hour' - not sure how to put a calculated value in the quotes. Is this possible?
greg@bryantrecording.com wrote: > > I'm trying to port an MS statement that's a bit involved with > timestamps, and I don't see anything in the docs to lead me forward. > It's basically a select statement, looking for records with a timestamp > within a certain range, where that range is calculated with one of the > fields. The WHERE clause that I use in SQL Server is: > getdate() + ((2100 + 5 + (9*Points)) / 86400) >= DueTime > > Where the numbers are actually parameters passed in to the function. > Other than changine getdate() to now(), I'm not sure how to change the > + interval to be effective. All the docs I see use something like > interval '1 hour' - not sure how to put a calculated value in the > quotes. Is this possible? > For the interval part, you can try interval '1 minute' * <some number>
On Thu, Dec 07, 2006 at 04:44:35PM -0700, greg@bryantrecording.com wrote: > fields. The WHERE clause that I use in SQL Server is: > getdate() + ((2100 + 5 + (9*Points)) / 86400) >= DueTime > > Where the numbers are actually parameters passed in to the function. > Other than changine getdate() to now(), I'm not sure how to change the > + interval to be effective. All the docs I see use something like > interval '1 hour' - not sure how to put a calculated value in the > quotes. Is this possible? Sure. Something like SELECT CURRENT_TIMESTAMP + (((2100 + 5 + (9*"Points")) / 86400) || 'seconds')::interval >= "DueTime" oughta work. -- Andrew Sullivan | ajs@crankycanuck.ca The plural of anecdote is not data. --Roger Brinner