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

jak pobrać dane z bieżącego tygodnia tylko na serwerze SQL?

Zrób to tak:

SET DATEFIRST 1 -- Define beginning of week as Monday
SELECT [...]
AND WorkDate >= dateadd(day, 1-datepart(dw, getdate()), CONVERT(date,getdate())) 
AND WorkDate <  dateadd(day, 8-datepart(dw, getdate()), CONVERT(date,getdate()))

Wyjaśnienie:

  • datepart(dw, getdate()) zwróci numer dnia w bieżącym tygodniu, od 1 do 7, zaczynając od tego, co określiłeś za pomocą USTAW PIERWSZĄ DATĘ .
  • dateadd(day, 1-datepart(dw, getdate()), getdate()) odejmuje niezbędną liczbę dni, aby dotrzeć do początku bieżącego tygodnia
  • CONVERT(date,getdate()) służy do usuwania części czasu funkcji GETDATE(), ponieważ chcesz, aby dane zaczynały się o północy.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Włączanie lub wyłączanie tożsamości na serwerze SQL

  2. MS SQL ON DELETE CASCADE wiele kluczy obcych wskazujących na tę samą tabelę?

  3. Jak mogę się zalogować i znaleźć najdroższe zapytania?

  4. Połączenie JDBC nie powiodło się, błąd:połączenie TCP/IP z hostem nie powiodło się

  5. Słaba wydajność planu wykonania procedury składowanej w SQL - podsłuchiwanie parametrów