0

DateTime 形式の日付の行を含むデータベース テーブルがあります。私がする必要があるのは、利用可能な日付のすべての異なる週番号を取得することです。たとえば、次の日付がある場合:

03-JAN-13 
04-JAN-13
09-JAN-13

SQLクエリは、次の週番号を提供します:1と2. PS:その後、これらの値をドロップダウンリストに入れます(そのステップで問題ありません)。

それで、誰かがそれを行う方法を教えてもらえますか?

4

3 に答える 3

4

使用している RDBMS を指定しませんでしたが、次を使用して週番号を取得できます。

使用する SQL Server DatePart():

select distinct datepart(week, dates) WeekNo
from yourtable

デモで SQL Fiddle を参照してください

MySQL では、以下を使用できますWeek()

select distinct week(dates)
from yourtable

デモで SQL Fiddle を参照してください

Oracle では、以下を使用できますto_char()

select distinct to_char(dates, 'W') WeekNo
from yourtable

デモで SQL Fiddle を参照してください

PostgreSQL では、以下を使用できます。

select distinct extract(WEEK from dates) WeekNO
from yourtable

デモで SQL Fiddle を参照してください

yourtableをテーブル名とdates日付列に置き換えます。

編集#1:MS Accessを使用している場合は、引き続き使用できますDatePart()(これはMS Access 2003でテストされました):

SELECT distinct datepart("ww", dates) as WeekNo
FROM yourtable;
于 2013-01-08T17:28:43.677 に答える
0

オンロード イベント、または必要な場所に、この VBA コードを配置します。

      Me!myCombo.RowSource = "yourquerytexthere;"

(または、どのクエリを使用しても..おそらく、Remou が回答した最後の質問から使用しているクエリ)。

この質問では、何を照会したいのかをすでに知っていると思います。コントロールの設定について尋ねているだけです。

そのコードはただ

    Me!myCombo.RowSource = "yourquerystring"

お気に入り

    Me!myCombo.RowSource = "SELECT distinct datepart("ww", dates) FROM yourtable;"

Me!myCombo はコンボボックスの名前です。

于 2013-01-08T18:06:40.987 に答える
0

年間 ISO 週番号テーブル - Oracle SQL クエリ:

-- ISO_WK# --
 SELECT mydate
      , TRUNC(mydate, 'w') wk_starts
      , TRUNC(mydate, 'w') + 7 - 1/86400 wk_ends
      , TO_NUMBER (TO_CHAR (mydate, 'IW')) ISO_WK#  
  FROM
   (
    SELECT TRUNC(SYSDATE, 'YEAR')-1 + LEVEL AS mydate  
      FROM dual
    CONNECT BY LEVEL <= 
    (-- First day of curr year - first day of past year --
      SELECT TRUNC(SYSDATE, 'YEAR')-TRUNC(ADD_MONTHS (SYSDATE, -12), 'YEAR') "Num of Days"   
        FROM dual
    )
  )
/
于 2013-01-08T19:31:10.837 に答える