sql >> Databáze >  >> RDS >> Sqlserver

Jak získat číslo týdne v měsíci z data na serveru SQL 2008

Zde jsou 2 různé způsoby, oba za předpokladu, že týden začíná v pondělí

Pokud chcete, aby týdny byly celé, tak patří do měsíce, ve kterém začínají:Takže sobota 2012-09-01 a neděle 2012-09-02 je týden 4 a pondělí 2012-09-03 je týden 1 použijte toto:

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

Pokud se vaše týdny zkracují při změně měsíce, takže sobota 2012-09-01 a neděle 2012-09-02 je týden 1 a pondělí 2012-09-03 je týden 2, použijte toto:

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

Dostal jsem e-mail od Geralda. Upozornil na chybu ve druhé metodě. To by mělo být nyní opraveno



  1. Dotaz byl prázdný Chyba PHP

  2. Klíčové slovo FROM nebylo nalezeno tam, kde se očekávalo (Oracle SQL)

  3. SQL Buddy – Webový nástroj pro správu MySQL

  4. Zamykání mezer MySQL