1
私はこの形式の日付のテーブルを持っています。私は、例えば、YYYY-MM形式SQL Serverの日付変換の質問
に変換する必要がYYYYDDD
は、私は、日付2016003
を持っているので、これは2016-01
になるはずです。
同様に、2016055
の日付が2016-02
は、ユーザー関数を作成することなく、これらを表示する方法はありになるでしょうか?
おかげ
私はこの形式の日付のテーブルを持っています。私は、例えば、YYYY-MM形式SQL Serverの日付変換の質問
に変換する必要がYYYYDDD
は、私は、日付2016003
を持っているので、これは2016-01
になるはずです。
同様に、2016055
の日付が2016-02
は、ユーザー関数を作成することなく、これらを表示する方法はありになるでしょうか?
おかげ
私は最も簡単な方法は、今年の初めに日追加することだと思います。だから、日付を取得する:
select dateadd(day, cast(right(col, 3) as int) - 1,
cast(left(col, 4) + '01-01' as date)
) as dte
あなたはそれを好きなようにフォーマットすることができます。たとえば、SQL Server 2012以降では、format()
を使用できます。
select format(dateadd(day, cast(right(col, 3) as int) - 1,
cast(left(col, 4) + '01-01' as date)
), 'YYYYMM'
) as yyyymm
現在のテーブルにあるものは日付ではありません。それらは日付を表す数字です。可能であれば、数字や文字列として日付情報を保存しないでください。日付または日時として格納する必要があります。あなたの人生はそれほど苦痛を軽減します。 –