php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen
Alt 16.12.2011, 10:22  
Benutzer
 
Registriert seit: 08.10.2009
Beiträge: 29
PHP-Kenntnisse:
Anfänger
tooken befindet sich auf einem aufstrebenden Ast
Standard SQL Abfrage mit Year und Month ?

Hallo,

ich habe ein Problem mit meiner SQL Abfrage. Ich möchte alle Datensätze auslesen aus dem aktuellen Monat und dem aktuellem Jahr. In der Datenbank ist im dem Feld veroeffentlichung das dateum im Format 02.12.2011 drin. Meine Abfrage nur mit dem Monat funktioniert:

PHP-Code:
SELECT DISTINCT p.products_id,
                              
pd.products_name,
                              
pd.products_description,
                              
p.products_date_added,
                              
p.filme_veroeffentlichung,
                              
pd.products_url,
                              
p.products_image
                        from 
".TABLE_PRODUCTS." p".TABLE_PRODUCTS_DESCRIPTION." pd
                        WHERE p
.products_status '1'
                        
AND   p.products_id pd.products_id
                        
AND MONTH(p.filme_veroeffentlichung) = MONTH(NOW())
                        
ORDER BY p.filme_veroeffentlichung DESC"; 
Aber dadurch das, dass Jahr fehlt gibt er alle Datensätze aus die zum beispiel im Dezember 2010,2011 sind. Nun möchte ich aber nur alle Datensätze aus dem aktuellem Jahr. Und wenn ich das Jahr mit einfüge ist die Abfrage leer:

PHP-Code:
SELECT DISTINCT p.products_id,
                              
pd.products_name,
                              
pd.products_description,
                              
p.products_date_added,
                              
p.filme_veroeffentlichung,
                              
pd.products_url,
                              
p.products_image
                        from 
".TABLE_PRODUCTS." p".TABLE_PRODUCTS_DESCRIPTION." pd
                        WHERE p
.products_status '1'
                        
AND   p.products_id pd.products_id
                        
AND MONTH(p.filme_veroeffentlichung) = MONTH(NOW())
                        AND 
YEAR(p.filme_veroeffentlichung) = YEAR(NOW())
                        
ORDER BY p.filme_veroeffentlichung DESC"; 
Was mache ich Falsch
tooken ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 16.12.2011, 11:09  
Erfahrener Benutzer
 
Registriert seit: 26.07.2010
Beiträge: 10.742
PHP-Kenntnisse:
Fortgeschritten
tr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehen
Standard

Code:
SELECT dingenskirchen 
FROM da 
   WHERE 
      dings = 1
         AND 
      da.movie_release BETWEEN 
         CONCAT_WS('-', 
            YEAR(NOW()), 
            MONTH(NOW()), 
            '01'
         ) 
            AND 
         LAST_DAY(NOW()) 
   ORDER BY dingens DESC
Datum-Ranges als Grenzen ist irgendwo Logischer als mit Einzelnen Zahlen rumzueiern.
__________________
PHP.de - Baud (→α) - PHP.de Repo - Bookmarks
Will code for gifts | BDD | HeForShe

Geändert von tr0y (16.12.2011 um 11:14 Uhr).
tr0y ist offline   Mit Zitat antworten
Alt 16.12.2011, 11:24  
Benutzer
 
Registriert seit: 08.10.2009
Beiträge: 29
PHP-Kenntnisse:
Anfänger
tooken befindet sich auf einem aufstrebenden Ast
Standard

Hey tr0y,

vielen Dank für deine schnelle Antwort. Ich habe es nun Probiert aber er gibt nun alle Datensätze aus.

Mein Datum in der DB ist ja in dem Format 01.12.2011 ... also muss CONCAT ja dann bei mir so aussehen:

PHP-Code:
AND p.filme_veroeffentlichung BETWEEN 
             CONCAT_WS
('.',NULL,MONTH(NOW()),YEAR(NOW())
                )
             AND 
LAST_DAY(NOW()) 
Aber wie gesagt er gibt dann alle Datensätze aus.
tooken ist offline   Mit Zitat antworten
Alt 16.12.2011, 11:50  
Erfahrener Benutzer
 
Registriert seit: 26.07.2010
Beiträge: 10.742
PHP-Kenntnisse:
Fortgeschritten
tr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehentr0y genießt hohes Ansehen
Standard

- das filmchen-geschmisse-tag feld MUSS vom typ DateTime sein, ansonsten musst du es live im Query dazu machen ( siehe unten )
- MySQL nutzt Standard-Formate für DateTime ( YYYY-MM-DD HH:II:SS )
- du hast nicht verstanden worums beim BETWEEN geht: du sagst der datenbank: gib mir alles zwischen Datum x und datum y, was soll da bitte die datenbank mit dem 0ten September 1992 anfangen ? Richtig, genau nix, invalides Datum.

Für den fall das du kein DateTime Typ hast hilft auch:

Code:
AND CAST( p.file_veroeffentlichung AS DATETIME ) 
   BETWEEN CONCAT_WS('-', YEAR(NOW()), MONTH(NOW()), '01') AND LAST_DAY(NOW())
Da sollte man sich aber weit von weg bewegen, wenn das ganze auf ziemlich ausgelasteten Seiten was werden soll, dort ist die angleichung der Datenfelder entsprechend der rethorischen Frage "Hi, und ? is der Rest deiner Datenbank auch vernünftig normalisiert ?"
__________________
PHP.de - Baud (→α) - PHP.de Repo - Bookmarks
Will code for gifts | BDD | HeForShe
tr0y ist offline   Mit Zitat antworten
Antwort


Themen-Optionen


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
SQL Abfrage mit Image Ausgabe verbinden Davidian PHP Einsteiger 2 15.12.2011 16:29
sql abfrage variable tobias159 PHP Einsteiger 3 03.12.2011 16:40
[Erledigt] SQL Abfrage liefert unvollständiges Ergebnis Albi011 PHP Einsteiger 4 12.11.2011 19:04
Sql Sum Abfrage bringt falsches Ergebnis T!G3R Datenbanken 2 04.10.2011 00:32
[Erledigt] kompliziertere SQL Abfrage / mehrere Joins MrJSmith Datenbanken 7 19.09.2011 13:04
[Erledigt] SQL Abfrage escapen wooha PHP Einsteiger 3 18.04.2011 10:13
[Erledigt] SQL zweistufige Abfrage Elefterios Datenbanken 12 13.03.2011 15:23
SQL Abfrage INNER JOIN etc. chr1s-eg Datenbanken 4 01.03.2011 13:37
Array aus SQL Abfrage zusammenbauen um es rekursiv abzuarbeiten litterauspirna PHP Einsteiger 7 01.02.2011 18:44
Werte mehrerer Checkboxen für SQL Abfrage übernehmen? krais PHP Einsteiger 4 14.01.2011 21:24
Umlaute (ä) in der SQL Abfrage noop Datenbanken 5 09.01.2011 23:06
[Erledigt] Mehr als eine SQL Abfrage hintereinander. Seebär PHP Einsteiger 5 29.12.2010 15:44
erweitere sql abfrage Helix PHP Einsteiger 5 27.12.2010 04:11
False Abfrage und SQL hängt sich auf marc77 Datenbanken 4 22.11.2010 14:57
[Erledigt] sql abfrage mit Tabelle in der $ Zeichn vorkommt dior Datenbanken 5 09.11.2010 13:05

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
sql month, sql year, sql abfrage year, sql monat abfragen, sql year month, sql month(), sql monat, year to month, sql abfrage monat, slq where month, sql now month, sql month aktuellen monat, sql jahr aus datum abfragen, monatsvergleich sql abfrage jahr, sql aktueller monat, sql year now, sql aktuellen monat abfragen, sql abfrage aktueller monat, sql month year, sql month and year

Alle Zeitangaben in WEZ +2. Es ist jetzt 23:54 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum