Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. Database & SysAdmin
  3. Database
  4. select upcoming birthday?

select upcoming birthday?

Scheduled Pinned Locked Moved Database
databasesql-serversysadmintutorialquestion
14 Posts 5 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    Meax
    wrote on last edited by
    #1

    i have users Date Of Birth as DOB in sql server table called UsersProfile. Person DOB a 3/13/2009 b 3/13/2009 c 3/25/2009 d 4/2/2009 e 4/15/2009 How to select next(upcoming) birthday from this table? if two persons bday falls on a same date, like Person a and Person b, how to select those two person?

    S L J 4 Replies Last reply
    0
    • M Meax

      i have users Date Of Birth as DOB in sql server table called UsersProfile. Person DOB a 3/13/2009 b 3/13/2009 c 3/25/2009 d 4/2/2009 e 4/15/2009 How to select next(upcoming) birthday from this table? if two persons bday falls on a same date, like Person a and Person b, how to select those two person?

      S Offline
      S Offline
      Syed Mehroz Alam
      wrote on last edited by
      #2

      On top of my head, I can think of something like:

      Select min(DOB) from UsersProfile where DOB > GetDate()

      for getting persons, we can have:

      Select Person from UsersProfile where DOB =
      ( Select min(DOB) from UsersProfile where DOB > GetDate() )

      Hope that helps. Regards,

      My Blog My Articles Computers are incredibly fast, accurate, and stupid; humans are incredibly slow, inaccurate and brilliant; together they are powerful beyond imagination. - Albert Einstein

      M 1 Reply Last reply
      0
      • S Syed Mehroz Alam

        On top of my head, I can think of something like:

        Select min(DOB) from UsersProfile where DOB > GetDate()

        for getting persons, we can have:

        Select Person from UsersProfile where DOB =
        ( Select min(DOB) from UsersProfile where DOB > GetDate() )

        Hope that helps. Regards,

        My Blog My Articles Computers are incredibly fast, accurate, and stupid; humans are incredibly slow, inaccurate and brilliant; together they are powerful beyond imagination. - Albert Einstein

        M Offline
        M Offline
        Meax
        wrote on last edited by
        #3

        thnaks for replying, however i am not getting any data with those quaries

        S 1 Reply Last reply
        0
        • M Meax

          i have users Date Of Birth as DOB in sql server table called UsersProfile. Person DOB a 3/13/2009 b 3/13/2009 c 3/25/2009 d 4/2/2009 e 4/15/2009 How to select next(upcoming) birthday from this table? if two persons bday falls on a same date, like Person a and Person b, how to select those two person?

          L Offline
          L Offline
          Luc Pattyn
          wrote on last edited by
          #4

          Meax wrote:

          i have users Date Of Birth

          what is it these unborn people are using? :doh:

          Luc Pattyn [Forum Guidelines] [My Articles]


          - before you ask a question here, search CodeProject, then Google - the quality and detail of your question reflects on the effectiveness of the help you are likely to get - use the code block button (PRE tags) to preserve formatting when showing multi-line code snippets


          M 1 Reply Last reply
          0
          • L Luc Pattyn

            Meax wrote:

            i have users Date Of Birth

            what is it these unborn people are using? :doh:

            Luc Pattyn [Forum Guidelines] [My Articles]


            - before you ask a question here, search CodeProject, then Google - the quality and detail of your question reflects on the effectiveness of the help you are likely to get - use the code block button (PRE tags) to preserve formatting when showing multi-line code snippets


            M Offline
            M Offline
            Meax
            wrote on last edited by
            #5

            sorry, meant to write 1980

            1 Reply Last reply
            0
            • M Meax

              i have users Date Of Birth as DOB in sql server table called UsersProfile. Person DOB a 3/13/2009 b 3/13/2009 c 3/25/2009 d 4/2/2009 e 4/15/2009 How to select next(upcoming) birthday from this table? if two persons bday falls on a same date, like Person a and Person b, how to select those two person?

              L Offline
              L Offline
              Luc Pattyn
              wrote on last edited by
              #6

              SELECT TOP 1 * FROM UsersProfile WHERE datepart(dy,DOB)>=datepart(dy,now()) ORDER BY datepart(dy,DOB) is what I would try to get the next one. :)

              Luc Pattyn [Forum Guidelines] [My Articles]


              - before you ask a question here, search CodeProject, then Google - the quality and detail of your question reflects on the effectiveness of the help you are likely to get - use the code block button (PRE tags) to preserve formatting when showing multi-line code snippets


              M 1 Reply Last reply
              0
              • L Luc Pattyn

                SELECT TOP 1 * FROM UsersProfile WHERE datepart(dy,DOB)>=datepart(dy,now()) ORDER BY datepart(dy,DOB) is what I would try to get the next one. :)

                Luc Pattyn [Forum Guidelines] [My Articles]


                - before you ask a question here, search CodeProject, then Google - the quality and detail of your question reflects on the effectiveness of the help you are likely to get - use the code block button (PRE tags) to preserve formatting when showing multi-line code snippets


                M Offline
                M Offline
                Meax
                wrote on last edited by
                #7

                what if 2 people has same birthday? like, Person DOB a 3/13/1980 b 3/13/1980 how to do it without writing TOP 2

                L 1 Reply Last reply
                0
                • M Meax

                  what if 2 people has same birthday? like, Person DOB a 3/13/1980 b 3/13/1980 how to do it without writing TOP 2

                  L Offline
                  L Offline
                  Luc Pattyn
                  wrote on last edited by
                  #8

                  Hi, Since the first reply suggested something like Select Person from UsersProfile where DOB = ( Select min(DOB) from UsersProfile where DOB > GetDate() ) it must be rather easy to get it like so: Select Person from UsersProfile where DOB = ( whatever it takes to obtain the next birthday ) So I would try: Select Person from UsersProfile where DOB = ( SELECT min(datepart(dy,DOB)) FROM UsersProfile WHERE datepart(dy,DOB)>=datepart(dy, now())) BTW: This is PHP/MySQL code that works for me:

                  $Query="SELECT \* FROM $table WHERE DAYOFYEAR(birthday)= ".
                  	"(SELECT min(DAYOFYEAR(birthday)) FROM $table ".
                  	"WHERE DAYOFYEAR(birthday)>=DAYOFYEAR(now()))";
                  

                  :)

                  Luc Pattyn [Forum Guidelines] [My Articles]


                  - before you ask a question here, search CodeProject, then Google - the quality and detail of your question reflects on the effectiveness of the help you are likely to get - use the code block button (PRE tags) to preserve formatting when showing multi-line code snippets


                  M 1 Reply Last reply
                  0
                  • M Meax

                    thnaks for replying, however i am not getting any data with those quaries

                    S Offline
                    S Offline
                    Syed Mehroz Alam
                    wrote on last edited by
                    #9

                    Strange.. It works for me. Here are my test statements:

                    declare @UsersProfile table
                    (
                    Person varchar(20),
                    DOB datetime
                    )

                    insert into @UsersProfile
                    select 'Person1', '2009-03-11'
                    union select 'Person2', '2009-03-13'
                    union select 'Person3', '2009-03-13'
                    union select 'Person4', '2009-03-16'
                    union select 'Person5', '2009-03-25'

                    select * from @UsersProfile
                    where DOB = ( select min(DOB) from @UsersProfile where DOB>GetDate() )

                    Are you sure your DOB column is of DateTime type? Regards,

                    My Blog My Articles Computers are incredibly fast, accurate, and stupid; humans are incredibly slow, inaccurate and brilliant; together they are powerful beyond imagination. - Albert Einstein

                    1 Reply Last reply
                    0
                    • L Luc Pattyn

                      Hi, Since the first reply suggested something like Select Person from UsersProfile where DOB = ( Select min(DOB) from UsersProfile where DOB > GetDate() ) it must be rather easy to get it like so: Select Person from UsersProfile where DOB = ( whatever it takes to obtain the next birthday ) So I would try: Select Person from UsersProfile where DOB = ( SELECT min(datepart(dy,DOB)) FROM UsersProfile WHERE datepart(dy,DOB)>=datepart(dy, now())) BTW: This is PHP/MySQL code that works for me:

                      $Query="SELECT \* FROM $table WHERE DAYOFYEAR(birthday)= ".
                      	"(SELECT min(DAYOFYEAR(birthday)) FROM $table ".
                      	"WHERE DAYOFYEAR(birthday)>=DAYOFYEAR(now()))";
                      

                      :)

                      Luc Pattyn [Forum Guidelines] [My Articles]


                      - before you ask a question here, search CodeProject, then Google - the quality and detail of your question reflects on the effectiveness of the help you are likely to get - use the code block button (PRE tags) to preserve formatting when showing multi-line code snippets


                      M Offline
                      M Offline
                      Meax
                      wrote on last edited by
                      #10

                      How to make this work in sql server "SELECT * FROM $table WHERE DAYOFYEAR(birthday)= ". "(SELECT min(DAYOFYEAR(birthday)) FROM $table ". "WHERE DAYOFYEAR(birthday)>=DAYOFYEAR(now()))";

                      J 1 Reply Last reply
                      0
                      • M Meax

                        How to make this work in sql server "SELECT * FROM $table WHERE DAYOFYEAR(birthday)= ". "(SELECT min(DAYOFYEAR(birthday)) FROM $table ". "WHERE DAYOFYEAR(birthday)>=DAYOFYEAR(now()))";

                        J Offline
                        J Offline
                        Jay Royall
                        wrote on last edited by
                        #11

                        Luc has given you more than enough help, if you can't help yourself from here then maybe you're in the wrong profession?!

                        M 1 Reply Last reply
                        0
                        • J Jay Royall

                          Luc has given you more than enough help, if you can't help yourself from here then maybe you're in the wrong profession?!

                          M Offline
                          M Offline
                          Meax
                          wrote on last edited by
                          #12

                          i am just trying to learn

                          J 1 Reply Last reply
                          0
                          • M Meax

                            i am just trying to learn

                            J Offline
                            J Offline
                            Jay Royall
                            wrote on last edited by
                            #13

                            Sure I realise that, I am too, but the best way to learn isn't to get other people to do it for you. Like I said, Luc has offered a great deal of help here, more than enough for you to work out the rest. If you still can't do it then post your code, I'm sure someone will be able to point you in the right direction.

                            1 Reply Last reply
                            0
                            • M Meax

                              i have users Date Of Birth as DOB in sql server table called UsersProfile. Person DOB a 3/13/2009 b 3/13/2009 c 3/25/2009 d 4/2/2009 e 4/15/2009 How to select next(upcoming) birthday from this table? if two persons bday falls on a same date, like Person a and Person b, how to select those two person?

                              J Offline
                              J Offline
                              je_gonzalez
                              wrote on last edited by
                              #14

                              SELECT * FROM UsersProfile WHERE ((403 + (31 * month(DOB) + day(DOB)) - (31 * month(getdate()) + day(getdate()))) % 403) = (SELECT MIN(((403 + (31 * month(DOB) + day(DOB)) - (31 * month(getdate()) + day(getdate()))) % 403)) FROM UsersProfile)

                              1 Reply Last reply
                              0
                              Reply
                              • Reply as topic
                              Log in to reply
                              • Oldest to Newest
                              • Newest to Oldest
                              • Most Votes


                              • Login

                              • Don't have an account? Register

                              • Login or register to search.
                              • First post
                                Last post
                              0
                              • Categories
                              • Recent
                              • Tags
                              • Popular
                              • World
                              • Users
                              • Groups