bảng này: sysschedulesCác khoảng thời gian sysschedules của SQL Server được tính như thế nào?
Nếu freq_type
là 8 (hàng tuần) sau đó freq_interval
là 1,2,4,8,16,32,64 cho Su, M, T, W, Th, F, S.
Nhưng khi freq_type
là 32 (tương đối hàng tháng) thì freq_interval
là 1,2,3,4,5,6,7,8,9,10 cho Su, M, T, W, Th, F, S, ngày trong tuần, cuối tuần.
Tại sao điều này? Có một số loại tính toán xảy ra để giảm độ phức tạp của truy vấn không?
Nếu có, làm cách nào? (Sry nếu tôi âm thanh tránh khỏi thất bại, việc xây dựng một hệ thống các sự kiện lặp đi lặp lại là tan não của tôi)
Vì vậy, truy vấn để nhận tất cả các sự kiện vào Thứ Ba có thể là SELECT * FROM EventTable WHERE freq_interval = [3 hoặc 4]? Bởi vì 3 nếu freq_type là 32, 4 nếu nó là 8. Đúng? – Chaddeus
Để có được tất cả các sự kiện xảy ra vào thứ ba, bạn sẽ truy vấn 'WHERE (freq_type = 32 AND freq_interval = 3) HOẶC (freq_type = 8 AND freq_interval & 4 = 4) '. Bạn * không nên cố gắng truy vấn 'freq_interval' mà không xem xét' freq_type'. –
Tuyệt vời, có ý nghĩa hoàn hảo. Các sự kiện diễn ra như thế nào vào mỗi Thứ Ba khác (mỗi 2 tuần) được đại diện với mô hình này? Có lẽ 'WHERE (freq_type = 32 AND freq_interval = 3 AND freq_relative_interval = 5)'? freq_relative_interval 1 = Đầu tiên và 4 = Thứ ba. (Sau khi gõ tất cả điều này ra, có vẻ như điều này sẽ không trả lời câu hỏi. Thay vào đó, chỉ trở về mỗi thứ ba đầu tiên và thứ ba ...). Hmm ... – Chaddeus