Idiot fråga ang. Date()

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • klementin
    Medlem
    • 2001-08-16
    • 128

    #1

    Idiot fråga ang. Date()

    Hej!
    Har en databas (Access) där olika personers födelsedatum finns. Dom är skrivna så här: 1972-09-19, och nu vill jag selektera ut dom som är födda på dagensdatum. Alltså alla som är födda tex. 09-19. Hur gör jag detta. Så här ser koden ut just nu:

    SQL = "SELECT * FROM UserInfo WHERE UserBornDate = '" & Date() & "' ORDER BY UserLastName ASC"

    Men då hämtar den ju bara personer som är födda 2001-09-19.

    En fråga till...
    Jag brukar alltid ta SELECT * FROM bla bla bla, när jag selekterar, försämrar detta prestandan eftersom jag använder ju knappast alla uppgifter den hämtar då, utan borde jag välja vad den ska hämta från databasen? Förstår ni (jag fattar knappt själv vad jag skrev)?

    Tack på förhand

    ------------------
    /Klementin
    -----------------------
    C:\DOS
    C:\DOS\Run
    Run DOS Run
    -----------------------
    -----------------------
    KLEMENTiN
    -----------------------
    C:\DOS
    C:\DOS\Run
    Run DOS Run
    -----------------------
  • jorgen
    Avregistrerad
    • 2001-02-03
    • 2179

    #2
    Hej!

    Ja, du hämtar ju en massa onödigt.

    skriv tex istället:

    [kod]
    strSQL = "SELECT namn, adress, epost FROM tabellen " & _
    " ORDER BY namn DESC " [/kod]

    om du nu inte ska använda alla fält i databasen.

    mvh Jörgen

    ------------------
    "Ett väl utfört arbete ger en inre tillfredsställelse och är den grund varpå samhället vilar."

    [Redigerat av jorgen den 19 sep 2001]

    Comment

    • Frejan
      Medlem
      • 2001-06-12
      • 45

      #3
      Prova med WHERE UserBornDate = '%09-19'

      Rätta mig om jag har fel. Vild chansning...

      Förmodligen helfel eftersom det var det 13:de inlägget. Hmmmm....

      ------------------
      Det finns alltid ett bättre sätt...

      [Redigerat av Frejan den 19 sep 2001]
      Det finns alltid ett bättre sätt...

      Comment

      • LarsG
        Medlem
        Årets medlem 2001
        • 2000-12-03
        • 12465

        #4
        [kod]
        SELECT *
        FROM UserInfo
        WHERE month(UserBornDate) = month(date)
        and day(UserBornDate) = day(date)
        [/kod]

        ------------------
        essentitia preter non sans multiplicandum
        essentitia preter non sans multiplicandum

        Comment

        • klementin
          Medlem
          • 2001-08-16
          • 128

          #5
          jorgen >> Okey då ska jag börja med det.

          Frejan >> Nix det fungerar inte + att det ska ju vara "dynamiskt" om du förstår vad jag menar.


          ------------------
          /Klementin
          -----------------------
          C:\DOS
          C:\DOS\Run
          Run DOS Run
          -----------------------
          -----------------------
          KLEMENTiN
          -----------------------
          C:\DOS
          C:\DOS\Run
          Run DOS Run
          -----------------------

          Comment

          • klementin
            Medlem
            • 2001-08-16
            • 128

            #6
            LarsG kan man alltid lita på :-) men nu blir det så här (jag är en nolla när det gäller ASP så det är säkert mitt fel):

            Microsoft JET Database Engine (0x80040E10)
            Det har inte angetts något värde för en eller flera nödvändiga parametrar.

            Koden ser ut så här:

            <%
            SQL = "SELECT UserBornaDate, UserLastName, UserFirstName FROM UserInfo WHERE month(UserBornDate) = month(date) AND day(UserBornDate) = day(date) ORDER BY UserLastName ASC"
            Set rs = Conn.Execute(SQL)
            Do while not rs.EOF
            %>

            ****

            <%
            rs.MoveNext
            Loop

            rs.Close()
            Set rs = Nothing
            Conn.Close
            Set Conn = Nothing
            %>

            ------------------
            /Klementin
            -----------------------
            C:\DOS
            C:\DOS\Run
            Run DOS Run
            -----------------------
            -----------------------
            KLEMENTiN
            -----------------------
            C:\DOS
            C:\DOS\Run
            Run DOS Run
            -----------------------

            Comment

            • Frejan
              Medlem
              • 2001-06-12
              • 45

              #7
              Var ett exempel, går ju att lagra värdet på dagen du vill få ut i en vaiabel....

              Men varför???

              LarsG visade ju hur man gör på riktigt.

              ------------------
              Det finns alltid ett bättre sätt...
              Det finns alltid ett bättre sätt...

              Comment

              • klementin
                Medlem
                • 2001-08-16
                • 128

                #8
                Jag ber om ursäkt om jag lät otacksam för ditt exempel men det är jag inte, tvärt om. Jag får det inte att funkta, dels pga. att jag är en idiot när det gäller ASP.

                ------------------
                /Klementin
                -----------------------
                C:\DOS
                C:\DOS\Run
                Run DOS Run
                -----------------------
                -----------------------
                KLEMENTiN
                -----------------------
                C:\DOS
                C:\DOS\Run
                Run DOS Run
                -----------------------

                Comment

                • LarsG
                  Medlem
                  Årets medlem 2001
                  • 2000-12-03
                  • 12465

                  #9
                  Det felmeddelande som du fick beror oftast på att man skrivit ett felaktigt kolumn- eller tabellnamn i sql-frågan.

                  [kod]
                  <%
                  SQL = "SELECT UserBornDate, UserLastName, UserFirstName FROM UserInfo WHERE month(UserBornDate) = month(date) AND day(UserBornDate) = day(date) ORDER BY UserLastName ASC"
                  Set rs = Conn.Execute(SQL)
                  Do while not rs.EOF
                  %>
                  [/kod]

                  Du hade skrivit userBornaDate på ett ställe men userBornDate på andra, så det är kanske det som är felet.


                  ------------------
                  essentitia preter non sans multiplicandum
                  essentitia preter non sans multiplicandum

                  Comment

                  • klementin
                    Medlem
                    • 2001-08-16
                    • 128

                    #10
                    Stämmer bra det (man har lite för bråttom ibland). Nu fungerar det klockrent. Ett stort TACK till er alla :-)


                    ------------------
                    /Klementin
                    -----------------------
                    C:\DOS
                    C:\DOS\Run
                    Run DOS Run
                    -----------------------
                    -----------------------
                    KLEMENTiN
                    -----------------------
                    C:\DOS
                    C:\DOS\Run
                    Run DOS Run
                    -----------------------

                    Comment

                    Working...