Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Otrzymujesz początkową i końcową datę tygodnia? Na serwerze SQL?

Poniższe będzie działać niezależnie od tego, jaki uważasz za pierwszy dzień tygodnia (niedziela, poniedziałek itp.), po prostu upewnij się, że używasz SET DATEFIRST jeśli chcesz zmienić z domyślnego. SET DATEFIRST 1 zrobi pierwszy dzień tygodnia w poniedziałek.

SELECT  DATEADD(DAY, 1 - DATEPART(WEEKDAY, GETDATE()), CAST(GETDATE() AS DATE)) [WeekStart],
        DATEADD(DAY, 7 - DATEPART(WEEKDAY, GETDATE()), CAST(GETDATE() AS DATE)) [WeekEnd]

EDYTUJ

Właśnie ponownie przeczytałem twoją prośbę i myślę, że możesz być po coś innego niż to, co podałem powyżej. Jeśli chcesz określić dzień tygodnia pierwszego i ostatniego dnia miesiąca, to wystarczy:

SELECT  DATENAME(WEEKDAY, DATEADD(DAY, 1 - DATEPART(DAY, GETDATE()), GETDATE())) [FirstDayOfMonth],
        DATENAME(WEEKDAY, DATEADD(DAY, - DATEPART(DAY, DATEADD(MONTH, 1, GETDATE())), DATEADD(MONTH, 1, GETDATE()))) [LastDayOfMonth]


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. WYBRAĆ Z procedury składowanej?

  2. Kiedy decydujemy się na zastosowanie krzyżowe i kiedy decydujemy się na sprzężenie wewnętrzne w SQL Server 2012

  3. Java7 sqljdbc4 - błąd SQL 08S01 podczas getConnection()

  4. Próba dołączenia bazy danych o automatycznej nazwie dla pliku ....database1.mdf nie powiodła się

  5. Jak przeanalizować ciąg i utworzyć z niego kilka kolumn?