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

Cách lấy số tuần của tháng kể từ ngày trong máy chủ sql 2008

Đây là 2 cách khác nhau, cả hai đều giả sử tuần bắt đầu vào thứ hai

Nếu bạn muốn các tuần là toàn bộ, thì chúng thuộc về tháng mà chúng bắt đầu:Vì vậy, thứ bảy 2012-09-01 và chủ nhật 2012-09-02 là tuần 4 và thứ hai 2012-09-03 là tuần 1 hãy sử dụng cái này:

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

Nếu số tuần của bạn bị cắt giảm vào ngày thay đổi tháng, vì vậy thứ bảy 2012-09-01 và chủ nhật 2012-09-02 là tuần 1 và thứ hai 2012-09-03 là tuần thứ 2, hãy sử dụng cái này:

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

Tôi đã nhận được một email từ Gerald. Ông đã chỉ ra một lỗ hổng trong phương pháp thứ hai. Điều này sẽ được khắc phục ngay bây giờ



  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 thực hiện THAM GIA ANTI SEMI TRÁI trong SQL Server

  2. Đổi tên khóa chính trong SQL Server (T-SQL)

  3. Truy vấn ngày tạo bảng SQL Server

  4. C # Giải mã byte từ SQL Server EncryptByPassPhrase?

  5. Nghiên cứu điển hình về nâng cấp phần cứng máy chủ cơ sở dữ liệu SQL Server