[MSSQL] Select mit like -> datetime

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [MSSQL] Select mit like -> datetime

    wie mach ich in mssql select * from blabla where time like '17.03.2005%'
    bei mir kommt nix raus...

  • #2
    bei datetime mußt du mit >, <, = oder <> operierien.
    Zuletzt geändert von asp2php; 17.03.2005, 12:20.

    Kommentar


    • #3
      Original geschrieben von asp2php
      bei datetime mußt du mit >, <, = oder <> operierien.

      hhhmmm wie meinst du ?
      ich hab ne db mit nen datetime aber wenn ich jetzt abfrage
      dass ich alle eintrage mit den datum 17.03.2005 will
      also ... where time like '17.03.2005%' mach kommt da nix obwohl da einträge vorhanedn sind

      Kommentar


      • #4
        Wie hast du denn das Datum in der DB ?
        Formatiert oder etwa als timestamp ?
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          Original geschrieben von NiteStyle
          hhhmmm wie meinst du ?
          genauso wie ich geschrieben habe, was verstehst du nicht? nimm die Vergleichsoperatoren, dafür sind sie da. like sollte nur bei String eingesetzt werden.

          Kommentar


          • #6
            wenn ich das feld auslese kommt da raus
            2005-03-17 10:48:33.000
            und wennich alle einträge von 2005-03-17
            haben will kann ich doch nicht mit den operatoren machen oder?

            das feld wurde mit datetime in der mssql def.

            Kommentar


            • #7
              dann
              - entweder mit datediff den Vergleich durchführen
              - oder mit day, month, year zurecht anpassen und vergleichen
              - oder mit cast/convert in varchar umwandeln, dann kanst du mit like arbeiten

              -> datediff ist von mir empfohlen, was du machst, ist 'ne andere Sache.

              Kommentar


              • #8
                das mit den anpassen hab ich shcon versucht...
                ausgelesen wird ja mit den "-" un in der der db steht´mit "." also mit enterprise ausgelsen oder nen sqlbrowser...

                wie gehts mit datediff?

                Kommentar


                • #9
                  natürlich sind die Daten im englischen Format abgelegt (YYYY-MM-DD HH:MM.SS,MS), nur dein EM zeigt sie Servereinstellung abhängig an.

                  wie hast du denn versucht anzupassen?

                  Syntax: datediff(datepart,startdate,enddate)

                  Kommentar


                  • #10
                    ich hab versuch mein like halt mit "-" und dann mit "." aber irgendwie haút es nicht hin :S

                    wenich jetzt ... like '2005-03-17%' komm auch nix raus
                    warum ? der bfehl bedeutet doch dass ich alles haben will
                    aus time wo 2005-03-17 steht, egal was für ne uhrzeit oder?

                    Kommentar


                    • #11
                      weil like und datetime nicht richtig funz, obwohl lt. doku sogar empfohlen, aber erfahrungsgemäß eben nicht.

                      warum nicht einfach ... where datediff(...)=0

                      Kommentar


                      • #12
                        Original geschrieben von asp2php
                        weil like und datetime nicht richtig funz, obwohl lt. doku sogar empfohlen, aber erfahrungsgemäß eben nicht.

                        warum nicht einfach ... where datediff(...)=0
                        datediff(datepart,startdate,enddate)

                        also wäre
                        2005-03-17 start
                        2005-03-18 end
                        und was ist datepart?



                        *edit:
                        hab das als datepart gefunden
                        (String) Einer der nachfolgend unter Intervall aufgeführten Werte, der angiebt, welcher Teil des Datums ausgelesen werden soll.


                        also wäre es:
                        where time datediff(yyyy-m-d, '2005-03-17', '2005-03-17') = 0
                        Zuletzt geändert von NiteStyle; 17.03.2005, 13:19.

                        Kommentar


                        • #13
                          Original geschrieben von NiteStyle

                          *edit:
                          hab das als datepart gefunden
                          (String) Einer der nachfolgend unter Intervall aufgeführten Werte, der angiebt, welcher Teil des Datums ausgelesen werden soll.


                          also wäre es:
                          where time datediff(yyyy-m-d, '2005-03-17', '2005-03-17') = 0
                          wenn du in der OH gefunden hast, warum liest du nicht die ganze Information und wendest sie an?

                          zu deiner Frage: nein, nicht so, sondern

                          Kommentar


                          • #14
                            SELECT *
                            FROM table
                            WHERE time DATEDIFF('d', '17.03.2005', '17.03.2005') = 0

                            SELECT *
                            FROM table
                            WHERE time DATEDIFF('yyyy - m - d', '2005-03-17', '2005-03-17') = 0
                            das geht so nicht :S


                            http://www.vbarchiv.net/commands/DateDiff.php
                            da hab ich es gefunden

                            hab es auch mit "-" und 2005-03-17 probiert und andersrum
                            ich weiss net mehr weiter:

                            Kommentar


                            • #15
                              In MSSQL ist der datepart abhängig von Servereinstellung entweder in '' oder ohne anzugeben, außerdem was soll denn das mit time hinter where?

                              ... where datediff(dd,time,'...')=0

                              oder

                              ... where datediff('dd',time,'...')=0

                              und warum hast du mssql_get_last_message() nicht angewendet?

                              Kommentar

                              Lädt...
                              X