|
Posted by Erland Sommarskog on 02/01/06 00:22
jerball (jerball@gmail.com) writes:
> The situation is that I have a query where a [thing] is supposed to
> end, in the sense that I don't want it to be pulled back in the query,
> at a certain time (end_date), but that is determined by the timezone
> that [thing] is located in (end_timezone).
>
> Basically, I want to say:
> 1) If the current record has a timezone not equal to the current time
> zone, which is mountain, then change the end_date being pulled back to
> reflect the time zone
> 2) Then, only pull back records that are scheduled to end before that
> time.
>
> I know this statement isn't valid, but I'll post it here to try to
> convey what I'm attempting:
>
> select end_date, end_timezone,
> CASE end_timezone
> WHEN 'ET' THEN DATEADD(hh, 2, end_date)
> WHEN 'CT' THEN DATEADD(hh, 1, end_date)
> WHEN 'PT' THEN DATEADD(hh, -1, end_date)
> ELSE end_date
> END AS theEndDate
> from offers
> where end_timezone = 'PT'
> and theEndDate >= {ts '2006-01-31 14:01:27'}
>
> Of course, this statement fails. Any suggestions on how to do what I'm
> trying to do?
How does if fail? Do you get an error message? Do you get unexpcted
result? Of course, since you constrain end_timezone to PT in the
WHERE condition, the CASE expression appears somewhat superfluous.
For this type of questions it is always a good idea to post:
1) CREATE TABLE statement(s) for the table(s) you are using.
2) INSERT statements with sample data.
3) The desired result given the sample.
This can help to improve the accuracy of the answers you get considerably.
--
Erland Sommarskog, SQL Server MVP, esquel@sommarskog.se
Books Online for SQL Server 2005 at
http://www.microsoft.com/technet/prodtechnol/sql/2005/downloads/books.mspx
Books Online for SQL Server 2000 at
http://www.microsoft.com/sql/prodinfo/previousversions/books.mspx
Navigation:
[Reply to this message]
|