所以我有一個程序,我目前正在調試的過程中,我已經縮小到這個選擇語句。爲什麼我得到相同的結果不同的列
注意:其中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_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出來像這樣
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_start_date'和'shift_end_date'值是不同的。所以我不確定我是否理解你認爲不正確的東西。 – 2012-03-15 21:46:52
對不起,這是一個錯字。我得到的是現在正確顯示 – James213 2012-03-16 00:45:22