sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan får du månedens ugenummer fra datoen i sql server 2008

Her er 2 forskellige måder, begge antager, at ugen starter på mandag

Hvis du ønsker, at uger skal være hele, så hører de til den måned, hvor de starter:Så lørdag 2012-09-01 og søndag 2012-09-02 er uge 4 og mandag 2012-09-03 er uge 1, brug denne:

declare @date datetime = '2012-09-01'
select datepart(day, datediff(day, 0, @date)/7 * 7)/7 + 1

Hvis dine uger skærer ned på månedsskifte, så lørdag 2012-09-01 og søndag 2012-09-02 er uge 1 og mandag 2012-09-03 er uge 2, brug dette:

declare @date datetime = '2012-09-01'
select datediff(week, dateadd(week, 
  datediff(day,0,dateadd(month,
    datediff(month,0,@date),0))/7, 0),@date-1) + 1

Jeg modtog en e-mail fra Gerald. Han påpegede en fejl ved den anden metode. Dette burde være rettet nu



  1. FEJL 1148:Den brugte kommando er ikke tilladt med denne MySQL-version

  2. Hvordan man genererer dynamiske etiketter og bruger kolonnenavnet og værdien som tekst

  3. Indsæt Blobs i MySql-databaser med php

  4. hvordan man konverterer varchar til datetime-format i mysql