Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

làm thế nào để nhận dữ liệu của tuần hiện tại chỉ trong máy chủ SQL?

Làm như thế này:

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()))

Giải thích:

  • datepart(dw, getdate()) sẽ trả về số ngày trong tuần hiện tại, từ 1 đến 7, bắt đầu bằng bất kỳ thứ gì bạn đã chỉ định bằng cách sử dụng ĐẶT LỊCH SỰ .
  • dateadd(day, 1-datepart(dw, getdate()), getdate()) trừ số ngày cần thiết để đến đầu tuần hiện tại
  • CONVERT(date,getdate()) được dùng để xóa phần thời gian của GETDATE () vì bạn muốn dữ liệu bắt đầu từ nửa đêm.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. cách tạo lược đồ XML từ cơ sở dữ liệu hiện có trong SQL Server 2008

  2. Làm cách nào để thay đổi kích thước trang của SQL Server?

  3. Làm thế nào để lấy bốn ký tự cuối cùng từ một varchar?

  4. Chèn nhiều hàng trong Sybase ASE

  5. Số lượng tích lũy SQL