私は現在、私がデバッグの過程にいるという手続きを持っており、このselect文に絞っています。なぜ私は異なる列に対して同じ結果を得ているのですか?
注:to_date( '')、3300,5220は、パラメータから来るものの表現です。
SELECT SHIFT_ID_PK, SHIFT_NAME_FK,
SHIFT_START_DAY, SHIFT_START_TIME,
SHIFT_END_DAY, SHIFT_END_TIME,
SITE_ID_FK, SHIFT_DAY_ID,
STARTOFFSET, ENDOFFSET,
TO_TIMESTAMP_TZ((TO_DATE('3/13/2012 7:00 ', 'mm/dd/yyyy HH:MI:SS am') - (3300/24/60)) + (STARTOFFSET/24/60), 'YYYY-MM-DD HH:MI:SS TZH:TZM') AS SHIFT_START_DATE,
TO_TIMESTAMP_tz((TO_DATE('3/14/2012 1:00 ', 'mm/dd/yyyy HH:MI:SS am') - (5220/24/60)) + (ENDOFFSET /24/60), 'YYYY-MM-DD HH:MI:SS TZH:TZM') AS SHIFT_END_DATE
from shift_tbl
WHERE
ENDOFFSET >= 3300
AND STARTOFFSET < 5220
order by shift_start_date asc, shift_end_date;
さて、これが行うことに仮定されているもの、タイムスタンプされたパラメータを取得し、オフセット値を減算します。
この値は、日曜の真夜中= 0の週に経過した分の数を表します(したがって、真夜中の月曜日の場合、オフセットは1440となります)。
オフセットをパラメータから差し引くと、曜日の先頭になります。次に、すでに設定されているテーブルからオフセット値を取得し、その値を週の先頭に追加してタイムスタンプを取得します。
これは、シフトの開始日と終了日を取得するために行われます。
今あなたが見るとこのことから来る結果セットの例でしょう以下:今、私の問題は私のshift_start_dateということですので、
SHIFT_ID_PK SHIFT_NAME_FK SHIFT_START_DAY SHIFT_START_TIME SHIFT_END_DAY SHIFT_END_TIME SITE_ID_FK SHIFT_DAY_ID STARTOFFSET ENDOFFSET **SHIFT_START_DATE SHIFT_END_DATE**
6146 6206 3 23:00 4 7:00 2450 3 4260 4740 **11-MAR-13 11.56.00.000000000 PM -05:00 11-MAR-13 11.56.00.000000000 PM -05:00**
のように同じ値として出てくるshift_end_date
SHIFT_ID_PK SHIFT_NAME_FK SHIFT_START_DAY SHIFT_START_TIME SHIFT_END_DAY SHIFT_END_TIME SITE_ID_FK SHIFT_DAY_ID STARTOFFSET ENDOFFSET **SHIFT_START_DATE SHIFT_END_DATE**
6146 6206 3 23:00 4 7:00 2450 3 4260 4740 **11-MAR-13 11.00.00.000000000 PM -05:00 11-MAR-14 07.00.00.000000000 PM -05:00**
**.....**
が付い
値は私が話していた値です。
私はこの問題を解決するためにいくつかの異なることを試みましたが、何もしていませんでしたので、私はこの問題の原因となっている非常に単純なものを見逃しています。
ご意見やご提案をいただければ幸いです。ありがとうございました。
私が何かを逃していない限り、両方の場合の 'shift_start_date'と' shift_end_date'の値は異なります。だから私はあなたが間違っていると信じていることを理解しているかどうか分からない。 –
申し訳ありませんが、それはタイプミスでした。私が得ていることが正しく表示されるようになりました – James213