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

Cách chọn ngày thứ hai hàng tuần và ngày thứ sáu hàng tuần trong năm

Bạn có thể sử dụng một bảng phù hợp với các số, như bảng master..spt_values ​​làm cơ sở cho việc tạo phạm vi:

;WITH dates AS (
    SELECT DATEADD(DAY,number,CAST('2014-01-01' AS DATE)) d
    FROM master..spt_values WHERE TYPE = 'p'
    AND number < 366
    )

SELECT 
    Week = DATEPART(WEEK, d), 
    DayOfWeek = DATENAME(dw, d), 
    Date = d
FROM dates
WHERE DATENAME(dw, d) IN ('Monday', 'Friday')
-- or use datepart instead as datename might be specific to language
-- WHERE DATEPART(dw, d) IN (2,6)

Đầu ra mẫu:

Week        DayOfWeek                      Date
----------- ------------------------------ ----------
1           Friday                         2014-01-03
2           Monday                         2014-01-06
2           Friday                         2014-01-10
3           Monday                         2014-01-13
3           Friday                         2014-01-17
4           Monday                         2014-01-20
4           Friday                         2014-01-24
5           Monday                         2014-01-27
5           Friday                         2014-01-31


  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ác cách khác nhau để so sánh lược đồ và dữ liệu bảng SQL Server

  2. SQL Server - Ưu và nhược điểm của Dirty Reads

  3. So sánh ngày tháng trong T-SQL, bỏ qua phần thời gian

  4. Cột nhận dạng SQL Server 2000/2005 + bản sao

  5. Áp dụng CTE đệ quy trên các hàng bảng được nhóm (SQL server 2005)