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

Nhận Ngày bắt đầu theo Quý và Ngày kết thúc trong năm

select 
    dateadd(M, 3*number, CONVERT(date, CONVERT(varchar(5),@year)+'-1-1')),
    dateadd(D,-1,dateadd(M, 3*number+3, CONVERT(date, CONVERT(varchar(5),@year)+'-1-1'))),
    Number QuarterNo
from master..spt_values 
where type='p' 
and number between 1 and 4  

Có thể bạn sẽ muốn sử dụng ngày tháng, không phải ngày giờ, nếu không thì không có gì trong ngày của ngày cuối cùng của quý được bao gồm trong quý của bạn (ví dụ:2013-06-30 14:15)

Để đi theo cách khác, hãy sử dụng datepart

select ((DATEPART(q,@date)+2) % 4)+1


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thêm cột vào bảng và sau đó cập nhật nó bên trong giao dịch

  2. SQL Server v.Next:Hiệu suất STRING_AGG, Phần 2

  3. chỉ lấy phần ngày từ giá trị datetime bằng cách sử dụng khung thực thể

  4. SQL Server:CẬP NHẬT bảng bằng cách sử dụng ORDER BY

  5. 3 cách sử dụng TẤT CẢ trong SQL Server