What's the values for the Freq_Interval column in MSDB.dbo.SysSchedules when Freq_Type is weekly and more...
I'm reading up on the SysSchedules table in the Microsoft API, and am trying to incorporate using this table in a query.
In the documentation, the Freq_Interval column seems to be defined out for when a single day is selected in the schedule and the Freq_Type is weekly.
But what are the values for every other combination of days when more than one day is selected?
For example, I have a job which is scheduled to occur weekly on the days Monday, Tuesday, Wednesday, Thursday, and Friday.
I see in the MSDB.dbo.SysSchedules table, it has a Freq_Interval of 62 (which isn't listed in the documentation.)
sql-server sql-server-2008-r2 jobs system-tables
add a comment |
I'm reading up on the SysSchedules table in the Microsoft API, and am trying to incorporate using this table in a query.
In the documentation, the Freq_Interval column seems to be defined out for when a single day is selected in the schedule and the Freq_Type is weekly.
But what are the values for every other combination of days when more than one day is selected?
For example, I have a job which is scheduled to occur weekly on the days Monday, Tuesday, Wednesday, Thursday, and Friday.
I see in the MSDB.dbo.SysSchedules table, it has a Freq_Interval of 62 (which isn't listed in the documentation.)
sql-server sql-server-2008-r2 jobs system-tables
add a comment |
I'm reading up on the SysSchedules table in the Microsoft API, and am trying to incorporate using this table in a query.
In the documentation, the Freq_Interval column seems to be defined out for when a single day is selected in the schedule and the Freq_Type is weekly.
But what are the values for every other combination of days when more than one day is selected?
For example, I have a job which is scheduled to occur weekly on the days Monday, Tuesday, Wednesday, Thursday, and Friday.
I see in the MSDB.dbo.SysSchedules table, it has a Freq_Interval of 62 (which isn't listed in the documentation.)
sql-server sql-server-2008-r2 jobs system-tables
I'm reading up on the SysSchedules table in the Microsoft API, and am trying to incorporate using this table in a query.
In the documentation, the Freq_Interval column seems to be defined out for when a single day is selected in the schedule and the Freq_Type is weekly.
But what are the values for every other combination of days when more than one day is selected?
For example, I have a job which is scheduled to occur weekly on the days Monday, Tuesday, Wednesday, Thursday, and Friday.
I see in the MSDB.dbo.SysSchedules table, it has a Freq_Interval of 62 (which isn't listed in the documentation.)
sql-server sql-server-2008-r2 jobs system-tables
sql-server sql-server-2008-r2 jobs system-tables
asked 5 hours ago
J.D.J.D.
457311
457311
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
The documentation states
freq_interval is one or more of the following:
1 = Sunday
2 = Monday
4 = Tuesday
8 = Wednesday
16 = Thursday
32 = Friday
64 = Saturday
These values are all powers of 2.
When you select multiple days simply add the distinct codes.
2 + 4 + 8 + 16 + 32 = 62
or alternatively use the bitwise or operator to combine them.
2 | 4 | 8 | 16 | 32
(my recommendation would be to use |
in code and +
if adding them up in your head! - |
is the "correct" thing to use and won't behave incorrectly if you have duplicate values in the list)
If you are trying to do the reverse operation you need bitwise and
DECLARE @Sunday TINYINT = 1,
@Monday TINYINT = 2,
@Tuesday TINYINT = 4,
@Wednesday TINYINT = 8,
@Thursday TINYINT = 16,
@Friday TINYINT = 32,
@Saturday TINYINT = 64;
DECLARE @TestValue TINYINT = 62;
SELECT CASE WHEN @TestValue & @Sunday = @Sunday THEN 'Y' ELSE 'N' END AS Sunday,
CASE WHEN @TestValue & @Monday = @Monday THEN 'Y' ELSE 'N' END AS Monday,
CASE WHEN @TestValue & @Tuesday = @Tuesday THEN 'Y' ELSE 'N' END AS Tuesday,
CASE WHEN @TestValue & @Wednesday = @Wednesday THEN 'Y' ELSE 'N' END AS Wednesday,
CASE WHEN @TestValue & @Thursday = @Thursday THEN 'Y' ELSE 'N' END AS Thursday,
CASE WHEN @TestValue & @Friday = @Friday THEN 'Y' ELSE 'N' END AS Friday,
CASE WHEN @TestValue & @Saturday = @Saturday THEN 'Y' ELSE 'N' END AS Saturday
Great answer, thank you! When I first saw how they spaced out that enum I was wondering if it was something like a bitwise operation. But I'm not super experienced using that type of operation and didn't think much more into it. Cool that'll work though, thanks.
– J.D.
14 mins ago
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "182"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdba.stackexchange.com%2fquestions%2f231402%2fwhats-the-values-for-the-freq-interval-column-in-msdb-dbo-sysschedules-when-fre%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
The documentation states
freq_interval is one or more of the following:
1 = Sunday
2 = Monday
4 = Tuesday
8 = Wednesday
16 = Thursday
32 = Friday
64 = Saturday
These values are all powers of 2.
When you select multiple days simply add the distinct codes.
2 + 4 + 8 + 16 + 32 = 62
or alternatively use the bitwise or operator to combine them.
2 | 4 | 8 | 16 | 32
(my recommendation would be to use |
in code and +
if adding them up in your head! - |
is the "correct" thing to use and won't behave incorrectly if you have duplicate values in the list)
If you are trying to do the reverse operation you need bitwise and
DECLARE @Sunday TINYINT = 1,
@Monday TINYINT = 2,
@Tuesday TINYINT = 4,
@Wednesday TINYINT = 8,
@Thursday TINYINT = 16,
@Friday TINYINT = 32,
@Saturday TINYINT = 64;
DECLARE @TestValue TINYINT = 62;
SELECT CASE WHEN @TestValue & @Sunday = @Sunday THEN 'Y' ELSE 'N' END AS Sunday,
CASE WHEN @TestValue & @Monday = @Monday THEN 'Y' ELSE 'N' END AS Monday,
CASE WHEN @TestValue & @Tuesday = @Tuesday THEN 'Y' ELSE 'N' END AS Tuesday,
CASE WHEN @TestValue & @Wednesday = @Wednesday THEN 'Y' ELSE 'N' END AS Wednesday,
CASE WHEN @TestValue & @Thursday = @Thursday THEN 'Y' ELSE 'N' END AS Thursday,
CASE WHEN @TestValue & @Friday = @Friday THEN 'Y' ELSE 'N' END AS Friday,
CASE WHEN @TestValue & @Saturday = @Saturday THEN 'Y' ELSE 'N' END AS Saturday
Great answer, thank you! When I first saw how they spaced out that enum I was wondering if it was something like a bitwise operation. But I'm not super experienced using that type of operation and didn't think much more into it. Cool that'll work though, thanks.
– J.D.
14 mins ago
add a comment |
The documentation states
freq_interval is one or more of the following:
1 = Sunday
2 = Monday
4 = Tuesday
8 = Wednesday
16 = Thursday
32 = Friday
64 = Saturday
These values are all powers of 2.
When you select multiple days simply add the distinct codes.
2 + 4 + 8 + 16 + 32 = 62
or alternatively use the bitwise or operator to combine them.
2 | 4 | 8 | 16 | 32
(my recommendation would be to use |
in code and +
if adding them up in your head! - |
is the "correct" thing to use and won't behave incorrectly if you have duplicate values in the list)
If you are trying to do the reverse operation you need bitwise and
DECLARE @Sunday TINYINT = 1,
@Monday TINYINT = 2,
@Tuesday TINYINT = 4,
@Wednesday TINYINT = 8,
@Thursday TINYINT = 16,
@Friday TINYINT = 32,
@Saturday TINYINT = 64;
DECLARE @TestValue TINYINT = 62;
SELECT CASE WHEN @TestValue & @Sunday = @Sunday THEN 'Y' ELSE 'N' END AS Sunday,
CASE WHEN @TestValue & @Monday = @Monday THEN 'Y' ELSE 'N' END AS Monday,
CASE WHEN @TestValue & @Tuesday = @Tuesday THEN 'Y' ELSE 'N' END AS Tuesday,
CASE WHEN @TestValue & @Wednesday = @Wednesday THEN 'Y' ELSE 'N' END AS Wednesday,
CASE WHEN @TestValue & @Thursday = @Thursday THEN 'Y' ELSE 'N' END AS Thursday,
CASE WHEN @TestValue & @Friday = @Friday THEN 'Y' ELSE 'N' END AS Friday,
CASE WHEN @TestValue & @Saturday = @Saturday THEN 'Y' ELSE 'N' END AS Saturday
Great answer, thank you! When I first saw how they spaced out that enum I was wondering if it was something like a bitwise operation. But I'm not super experienced using that type of operation and didn't think much more into it. Cool that'll work though, thanks.
– J.D.
14 mins ago
add a comment |
The documentation states
freq_interval is one or more of the following:
1 = Sunday
2 = Monday
4 = Tuesday
8 = Wednesday
16 = Thursday
32 = Friday
64 = Saturday
These values are all powers of 2.
When you select multiple days simply add the distinct codes.
2 + 4 + 8 + 16 + 32 = 62
or alternatively use the bitwise or operator to combine them.
2 | 4 | 8 | 16 | 32
(my recommendation would be to use |
in code and +
if adding them up in your head! - |
is the "correct" thing to use and won't behave incorrectly if you have duplicate values in the list)
If you are trying to do the reverse operation you need bitwise and
DECLARE @Sunday TINYINT = 1,
@Monday TINYINT = 2,
@Tuesday TINYINT = 4,
@Wednesday TINYINT = 8,
@Thursday TINYINT = 16,
@Friday TINYINT = 32,
@Saturday TINYINT = 64;
DECLARE @TestValue TINYINT = 62;
SELECT CASE WHEN @TestValue & @Sunday = @Sunday THEN 'Y' ELSE 'N' END AS Sunday,
CASE WHEN @TestValue & @Monday = @Monday THEN 'Y' ELSE 'N' END AS Monday,
CASE WHEN @TestValue & @Tuesday = @Tuesday THEN 'Y' ELSE 'N' END AS Tuesday,
CASE WHEN @TestValue & @Wednesday = @Wednesday THEN 'Y' ELSE 'N' END AS Wednesday,
CASE WHEN @TestValue & @Thursday = @Thursday THEN 'Y' ELSE 'N' END AS Thursday,
CASE WHEN @TestValue & @Friday = @Friday THEN 'Y' ELSE 'N' END AS Friday,
CASE WHEN @TestValue & @Saturday = @Saturday THEN 'Y' ELSE 'N' END AS Saturday
The documentation states
freq_interval is one or more of the following:
1 = Sunday
2 = Monday
4 = Tuesday
8 = Wednesday
16 = Thursday
32 = Friday
64 = Saturday
These values are all powers of 2.
When you select multiple days simply add the distinct codes.
2 + 4 + 8 + 16 + 32 = 62
or alternatively use the bitwise or operator to combine them.
2 | 4 | 8 | 16 | 32
(my recommendation would be to use |
in code and +
if adding them up in your head! - |
is the "correct" thing to use and won't behave incorrectly if you have duplicate values in the list)
If you are trying to do the reverse operation you need bitwise and
DECLARE @Sunday TINYINT = 1,
@Monday TINYINT = 2,
@Tuesday TINYINT = 4,
@Wednesday TINYINT = 8,
@Thursday TINYINT = 16,
@Friday TINYINT = 32,
@Saturday TINYINT = 64;
DECLARE @TestValue TINYINT = 62;
SELECT CASE WHEN @TestValue & @Sunday = @Sunday THEN 'Y' ELSE 'N' END AS Sunday,
CASE WHEN @TestValue & @Monday = @Monday THEN 'Y' ELSE 'N' END AS Monday,
CASE WHEN @TestValue & @Tuesday = @Tuesday THEN 'Y' ELSE 'N' END AS Tuesday,
CASE WHEN @TestValue & @Wednesday = @Wednesday THEN 'Y' ELSE 'N' END AS Wednesday,
CASE WHEN @TestValue & @Thursday = @Thursday THEN 'Y' ELSE 'N' END AS Thursday,
CASE WHEN @TestValue & @Friday = @Friday THEN 'Y' ELSE 'N' END AS Friday,
CASE WHEN @TestValue & @Saturday = @Saturday THEN 'Y' ELSE 'N' END AS Saturday
edited 4 hours ago
answered 4 hours ago
Martin SmithMartin Smith
63.6k10171254
63.6k10171254
Great answer, thank you! When I first saw how they spaced out that enum I was wondering if it was something like a bitwise operation. But I'm not super experienced using that type of operation and didn't think much more into it. Cool that'll work though, thanks.
– J.D.
14 mins ago
add a comment |
Great answer, thank you! When I first saw how they spaced out that enum I was wondering if it was something like a bitwise operation. But I'm not super experienced using that type of operation and didn't think much more into it. Cool that'll work though, thanks.
– J.D.
14 mins ago
Great answer, thank you! When I first saw how they spaced out that enum I was wondering if it was something like a bitwise operation. But I'm not super experienced using that type of operation and didn't think much more into it. Cool that'll work though, thanks.
– J.D.
14 mins ago
Great answer, thank you! When I first saw how they spaced out that enum I was wondering if it was something like a bitwise operation. But I'm not super experienced using that type of operation and didn't think much more into it. Cool that'll work though, thanks.
– J.D.
14 mins ago
add a comment |
Thanks for contributing an answer to Database Administrators Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdba.stackexchange.com%2fquestions%2f231402%2fwhats-the-values-for-the-freq-interval-column-in-msdb-dbo-sysschedules-when-fre%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown