答えて

0

スノーフレークはDATE_TRUNC(WEEK, ..)を提供していますので、ISO週の初日を取得できます。その後6日を追加すると、最後の日が与えられます。そしてDATE_EXTRACT(WEEK, ..)(または単にWEEK(..))もあります

例えば:

select extract(week, '2017-10-10'::date), date_trunc(week, '2017-10-10'::date), dateadd(day, 6, date_trunc(week, '2017-10-10'::date)); 
-----------------------------------+--------------------------------------+-------------------------------------------------------+ 
EXTRACT(WEEK, '2017-10-10'::DATE) | DATE_TRUNC(WEEK, '2017-10-10'::DATE) | DATEADD(DAY, 6, DATE_TRUNC(WEEK, '2017-10-10'::DATE)) | 
-----------------------------------+--------------------------------------+-------------------------------------------------------+ 
41        | 2017-10-09       | 2017-10-15           | 
-----------------------------------+--------------------------------------+-------------------------------------------------------+ 

は詳細についてはマニュアルを参照して、ISOの週は少し変な意味を持っていることを忘れないでください。

+0

ありがとうMarcin。これは非常に役に立ちます。これは、SnowflakeにISOの日付のネイティブサポートがあることを意味しますか?それでは、特定の日付からどのようにして定期的な週番号(ISOではなく)を取得できますか?そこには別の機能がありますか? SFのドキュメンテーション「dayofweek_iso」には1つの関数があります。あなたは他のそのような機能を知っていますか?私はドキュメンテーションでそのようなことを見つけることができませんでした。 – Mohit

+0

今日、Snowflakeは主にISOベースの曜日機能を提供しています.WEEKはたとえばISO weekを返します。また、Snowflakeではすぐに追加の週関連機能が提供されます。うまくいけば今四半期。これはあなたの要求に対応する必要があります。 –

+0

Btw、あなたが見たいと思う正確な種類の機能を提供できるなら、できるだけ詳しくコメントを付けてください。たとえば、12月31日は常にその年の週(たとえば52または53)に属しているか、翌年の第1週に属することができますか?フォローアップありがとうございます。 –