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;
}







2















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









share|improve this question































    2















    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









    share|improve this question



























      2












      2








      2








      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









      share|improve this question
















      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






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited 2 hours ago









      sticky bit

      2,053415




      2,053415










      asked 3 hours ago









      Mike JonesMike Jones

      554




      554






















          1 Answer
          1






          active

          oldest

          votes


















          2














          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);





          share|improve this answer
























            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
            });


            }
            });














            draft saved

            draft discarded


















            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









            2














            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);





            share|improve this answer




























              2














              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);





              share|improve this answer


























                2












                2








                2







                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);





                share|improve this answer













                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);






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered 2 hours ago









                sticky bitsticky bit

                2,053415




                2,053415






























                    draft saved

                    draft discarded




















































                    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.




                    draft saved


                    draft discarded














                    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





















































                    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







                    Popular posts from this blog

                    SQL Server 17 - Attemping to backup to remote NAS but Access is denied

                    Always On Availability groups resolving state after failover - Remote harden of transaction...

                    Restoring from pg_dump with foreign key constraints