2015-04-15 74 views
0

好傢伙,我需要知道一個月DB2 - 獲取月份的周

的一週例如數量:在文檔

Date  | WeekOfTheMonth 
2015-04-15 | 3 
2015-03-01 | 1 
2015-01-08 | 2 

怎麼一回事,因爲只看到周今年

謝謝

+0

假設您的日曆開始星期日,1)獲取週日那是一個月或前一個月的第一天。 2)計算星期日和日期之間的天數。 3)將天數除以7. –

+1

你需要哪些 - 從每月的第一天開始的一週(不管實際的星期幾),還是始終基於給定的一天(如@吉爾伯特假設)?附註:如果你沒有,我真的推薦一個日曆表,其中你會永久存儲這個(和其他一些信息)用於查詢 - 在飛行中獲取這些信息可能是昂貴的。你打算如何在查詢中使用它? –

回答

-1

你沒有提到你的平臺,但VARCHAR_FORMAT有一個W格式字符串,它給出了本月的K:月(1-5),第1點開始在 月的第一天,第七日結束的

周。

SELECT VARCHAR_FORMAT(CURRENT TIMESTAMP, 'W') FROM SYSIBM.SYSDUMMY1 
+0

@jasilva如果您不向我們顯示出現錯誤的代碼,錯誤消息不會幫助我們。如果VARCHAR_FORMAT()函數本身沒有被拒絕,那麼你有最新版本的DB2(你還沒有告訴我們,也沒有平臺)。如果參數1被拒絕,則表示使用了錯誤的表達式。 DB2版本和平臺的VARCHAR_FORMAT()文檔將告訴您什麼是有效的。 (我們可以告訴你,如果我們知道你有什麼。)嘗試CURRENT TIMESTAMP而不是CURRENT DATE。 – user2338816

0

測試此SQL查詢

SELECT KURRENT - FIRSTY + 1 FROM (-- AVOID CURRENT AND FIRST KEYWORD 
    SELECT 
    WEEK_ISO(DATE(1) + (YEAR(date_colum)-1) YEARS + (MONTH(date_colum)-1) MONTHS)AS FIRSTY , 
    WEEK_ISO(date(date_column)) AS KURRENT 
FROM TEST_DATE_TABLE 
) AS T