Filter Table by a Historical 'Last Day of the Month'
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ margin-bottom:0;
}
I have a daily appending table, that I need a formula for that would filter the table results to just the last day of any given historical month. For example:
Table:
DwDate Balance
20181231 $10
20190131 $80
20190228 $75
20190331 $50
99% of the time I just need the MAX DwDate, which would be:
@MaxDate = (SELECT MAX(DwDate) FROM dbo.TABLE)
However, occasionally I need a formula that would allow me to go back 1 or 2 months:
@MaxDate - 2 Months
sql-server-2016 date date-math
add a comment |
I have a daily appending table, that I need a formula for that would filter the table results to just the last day of any given historical month. For example:
Table:
DwDate Balance
20181231 $10
20190131 $80
20190228 $75
20190331 $50
99% of the time I just need the MAX DwDate, which would be:
@MaxDate = (SELECT MAX(DwDate) FROM dbo.TABLE)
However, occasionally I need a formula that would allow me to go back 1 or 2 months:
@MaxDate - 2 Months
sql-server-2016 date date-math
add a comment |
I have a daily appending table, that I need a formula for that would filter the table results to just the last day of any given historical month. For example:
Table:
DwDate Balance
20181231 $10
20190131 $80
20190228 $75
20190331 $50
99% of the time I just need the MAX DwDate, which would be:
@MaxDate = (SELECT MAX(DwDate) FROM dbo.TABLE)
However, occasionally I need a formula that would allow me to go back 1 or 2 months:
@MaxDate - 2 Months
sql-server-2016 date date-math
I have a daily appending table, that I need a formula for that would filter the table results to just the last day of any given historical month. For example:
Table:
DwDate Balance
20181231 $10
20190131 $80
20190228 $75
20190331 $50
99% of the time I just need the MAX DwDate, which would be:
@MaxDate = (SELECT MAX(DwDate) FROM dbo.TABLE)
However, occasionally I need a formula that would allow me to go back 1 or 2 months:
@MaxDate - 2 Months
sql-server-2016 date date-math
sql-server-2016 date date-math
edited 2 hours ago
sticky bit
2,053415
2,053415
asked 3 hours ago
Mike JonesMike Jones
554
554
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
To subract a month from a date you can use dateadd()
.
For example
SET @MaxDate = dateadd(month, -1, @MaxDate);
would subtract one month from your @MaxDate
. That would keep the day of the month though. (Unless this day doesn't exists for the month, then it's the last day of the month, so e.g. the 31th day might become the 30th.)
To get the date of the last day of a month a date is in eomonth()
can be used.
SET @MaxDate = eomonth(@MaxDate);
would set @MaxDate
to the last day of the month @MaxDate
was previously in.
eomonth()
optionally takes a second argument, which is an integer to add to the month. So to set @MaxDate
to the last day of the previous month of @MaxDate
you might use
SET @MaxDate = eomonth(@MaxDate, -1);
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%2f234248%2ffilter-table-by-a-historical-last-day-of-the-month%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
To subract a month from a date you can use dateadd()
.
For example
SET @MaxDate = dateadd(month, -1, @MaxDate);
would subtract one month from your @MaxDate
. That would keep the day of the month though. (Unless this day doesn't exists for the month, then it's the last day of the month, so e.g. the 31th day might become the 30th.)
To get the date of the last day of a month a date is in eomonth()
can be used.
SET @MaxDate = eomonth(@MaxDate);
would set @MaxDate
to the last day of the month @MaxDate
was previously in.
eomonth()
optionally takes a second argument, which is an integer to add to the month. So to set @MaxDate
to the last day of the previous month of @MaxDate
you might use
SET @MaxDate = eomonth(@MaxDate, -1);
add a comment |
To subract a month from a date you can use dateadd()
.
For example
SET @MaxDate = dateadd(month, -1, @MaxDate);
would subtract one month from your @MaxDate
. That would keep the day of the month though. (Unless this day doesn't exists for the month, then it's the last day of the month, so e.g. the 31th day might become the 30th.)
To get the date of the last day of a month a date is in eomonth()
can be used.
SET @MaxDate = eomonth(@MaxDate);
would set @MaxDate
to the last day of the month @MaxDate
was previously in.
eomonth()
optionally takes a second argument, which is an integer to add to the month. So to set @MaxDate
to the last day of the previous month of @MaxDate
you might use
SET @MaxDate = eomonth(@MaxDate, -1);
add a comment |
To subract a month from a date you can use dateadd()
.
For example
SET @MaxDate = dateadd(month, -1, @MaxDate);
would subtract one month from your @MaxDate
. That would keep the day of the month though. (Unless this day doesn't exists for the month, then it's the last day of the month, so e.g. the 31th day might become the 30th.)
To get the date of the last day of a month a date is in eomonth()
can be used.
SET @MaxDate = eomonth(@MaxDate);
would set @MaxDate
to the last day of the month @MaxDate
was previously in.
eomonth()
optionally takes a second argument, which is an integer to add to the month. So to set @MaxDate
to the last day of the previous month of @MaxDate
you might use
SET @MaxDate = eomonth(@MaxDate, -1);
To subract a month from a date you can use dateadd()
.
For example
SET @MaxDate = dateadd(month, -1, @MaxDate);
would subtract one month from your @MaxDate
. That would keep the day of the month though. (Unless this day doesn't exists for the month, then it's the last day of the month, so e.g. the 31th day might become the 30th.)
To get the date of the last day of a month a date is in eomonth()
can be used.
SET @MaxDate = eomonth(@MaxDate);
would set @MaxDate
to the last day of the month @MaxDate
was previously in.
eomonth()
optionally takes a second argument, which is an integer to add to the month. So to set @MaxDate
to the last day of the previous month of @MaxDate
you might use
SET @MaxDate = eomonth(@MaxDate, -1);
answered 2 hours ago
sticky bitsticky bit
2,053415
2,053415
add a comment |
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%2f234248%2ffilter-table-by-a-historical-last-day-of-the-month%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