Teradata SQL で年の最初の日を特定する方法はありますか?
たとえば、これを使用して月の最初の日を見つけます。
SELECT dt + (1 - EXTRACT(DAY FROM dt)) AS dt
を使用して年を直接抽出できることはわかってYEAR()
いますが、結果を日付として出力したいので、一部の外部チャートで機能します。
私はこれを試しましたが、日付の先頭にたくさんのスペースを追加しました:
CONCAT(YEAR(dt),'-01-01')
dnoeth のアプローチはジョブの長期的な最適化には優れていますが、私の意見では、簡単な答えは Jeffrey のアプローチか次のいずれかです。どちらがより少ないリソースを使用するかわからない:
select cast(extract(year from current_date)||'0101' as date format 'yyyymmdd');
理解した:
ADD_MONTHS(dt, -(EXTRACT(MONTH FROM dt) - 1)) + (1 - EXTRACT(DAY FROM dt))
これを試して。
日付を選択- 年(日付)+1