web-dev-qa-db-ja.com

SQLで週番号を抽出する方法

Varchar2型の変換列があり、次のエントリがあります

01/02/2012
01/03/2012

等.

To_date関数を使用して、別の列で日付形式に変換しました。これは私が得た形式です。

01-JAN-2012
03-APR-2012

Weeknoを抽出しようとすると、すべてのnull値が取得されます。

テーブル名からweeknoとしてto_char(to_date(TRANSDATE)、 'w')を選択します。

null
null

上記の形式で日付からweeknoを取得する方法は?

18
user2133404

_varchar2_日付を真のdateデータ型に変換した後、目的のマスクを使用して_varchar2_に変換し直します。

_to_char(to_date('01/02/2012','MM/DD/YYYY'),'WW')
_

numberデータ型の週番号が必要な場合は、to_number()でステートメントをラップできます。

_to_number(to_char(to_date('01/02/2012','MM/DD/YYYY'),'WW'))
_

ただし、考慮すべき週番号のオプションがいくつかあります。

_WW  Week of year (1-53) where week 1 starts on the first day of the year and continues to the seventh day of the year.
W   Week of month (1-5) where week 1 starts on the first day of the month and ends on the seventh.
IW  Week of year (1-52 or 1-53) based on the ISO standard.
_
57
Wolf

「w」を「iw」に置き換えてみてください。例えば:

SELECT to_char(to_date(TRANSDATE, 'dd-mm-yyyy'), 'iw') as weeknumber from YOUR_TABLE;
3
Vinicius Lima
Select last_name, round (sysdate-hire_date)/7,0) as tuner 
  from employees
  Where department_id = 90 
  order by last_name;
0
Sheen