php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 04.09.2011, 20:59  
Benutzer
 
Registriert seit: 25.02.2011
Beiträge: 42
PHP-Kenntnisse:
Fortgeschritten
MLang befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] MSSQL where mit smalldatetime

Servus,

ich habe irgendwie Probleme mit der Abfrage eines Datums in MSSQL. Das Datenfeld in der DB ist ein SMALLDATETIME Feld.

Hier mein Query:

PHP-Code:
SELECT     TOP (25OrderIDProduct_CodeOrder_DateProduct_Description_1Quantity_OrderedAccountSubID
FROM         tnUser_Orders
WHERE     
(Order_State '3100') AND (Product_Type 711) AND (Order_Date '2011-05-11 00:00:00') AND (Order_Date '2011-05-15 23:59:59')
ORDER BY OrderID 
Gebaut wird der Query per Zend Framework.

Es kommt ne Fehlermeldung im SQL Server dass er den Wert aus varchar nicht in smalldatetime wandeln kann. Ist ein SQL 2008 R2 Express.

Kann mir wer sagen wie man so was in mssql aufbaut bzw. Tipps geben. Bei Google habe ich nicht wirklich was gescheites gefunden bisher.
MLang ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 04.09.2011, 21:19  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Die Google-Ergebnisse, die ich bei einer kurzen Suche finde, legen nahe, dass du den String wohl nach SMALLDATETIME casten musst, um korrekt vergleichen zu können …
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 04.09.2011, 21:30  
Benutzer
 
Registriert seit: 25.02.2011
Beiträge: 42
PHP-Kenntnisse:
Fortgeschritten
MLang befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
SELECT     TOP (25OrderIDProduct_CodeOrder_DateProduct_Description_1Quantity_OrderedAccountSubID
FROM         tnUser_Orders
WHERE     
(Order_State '3100') AND (Product_Type 711) AND (Order_Date CAST('2011-05-11 00:00:00' AS smalldatetime)) AND 
                      (
Order_Date CAST('2011-05-15 23:59:59' AS smalldatetime))
ORDER BY OrderID 
Mit CAST probiert selber Fehler.
MLang ist offline   Mit Zitat antworten
Alt 04.09.2011, 21:42  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Stellt das Datum, so wie du es angegeben hast, denn ohne den Sekunden-„Nachkommateil“ überhaupt eine gültige Angabe für SMALLDATETIME dar?
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 04.09.2011, 21:46  
Benutzer
 
Registriert seit: 25.02.2011
Beiträge: 42
PHP-Kenntnisse:
Fortgeschritten
MLang befindet sich auf einem aufstrebenden Ast
Standard

Laut der DB handelt es sich um einen smalldatetime Feld und es stehen auch so die Werte drinne wie ich sie im Statement stehen habe. Ich habe es jetzt schon mit Convert probiert

PHP-Code:
SELECT     TOP (25OrderIDProduct_CodeOrder_DateProduct_Description_1Quantity_OrderedAccountSubID
FROM         tnUser_Orders
WHERE     
(Order_State '3100') AND (Product_Type 711) AND (Order_Date >= CONVERT(varchar(19), '2011-05-08 00:00:00'120)) AND (Order_Date <= CONVERT(varchar(19), 
                      
'2011-05-15 23:59:59'120))
ORDER BY OrderID 
wie auf der folgenden Seite beschrieben: http://www.sql-server-helper.com/tips/date-formats.aspx
MLang ist offline   Mit Zitat antworten
Alt 04.09.2011, 21:48  
Erfahrener Benutzer
 
Registriert seit: 03.08.2010
Beiträge: 1.140
PHP-Kenntnisse:
Anfänger
hausl wird schon bald berühmt werdenhausl wird schon bald berühmt werden
Standard

Schuss ins Blaue.. Versuch mal das Datum zwischen #...# einzuschliessen.

Code:
... Order_Date > '#2011-05-11 00:00:00#' ...
LG
__________________
Keine Zahl != ein Zeichen das keine Zahl ist
hausl ist offline   Mit Zitat antworten
Alt 04.09.2011, 21:51  
Benutzer
 
Registriert seit: 25.02.2011
Beiträge: 42
PHP-Kenntnisse:
Fortgeschritten
MLang befindet sich auf einem aufstrebenden Ast
Standard

Nope auch nix.

Mir scheint als wenn die Abfrage irgendwie den Datumsstring durcheinander bringt. Das Feld in der DB hat das Format YYYY-MM-DD HH:MM:SS. In der Abfrage scheint er aber DD und MM zu tauschen also YYYY-DD-MM etc. Wenn ich nämlich ein Datum wie > 2011-05-08 AND < 2011-05-12 angebe. Wird die Abfrage ausgeführt aber das Ergebnis hat Werte wie 2011-07-19 09:04:00.

Entweder bin ich heute zu doof oder zu müde oder beides :/

Eindeutig zu blöd
PHP-Code:
SELECT     TOP (25OrderIDProduct_CodeOrder_DateProduct_Description_1Quantity_OrderedAccountSubID
FROM         tnUser_Orders
WHERE     
(Order_Date >= CONVERT(smalldatetime'2011-05-07 00:00:00'20)) AND (Order_Date <= CONVERT(smalldatetime'2011-05-12 23:59:59'20))
ORDER BY OrderID 
Und mal die anderen WHERE Bedingen rausgenommen da sonst keine Datensätze gefunden wurden. Sorry für die Mühe :/

Geändert von MLang (04.09.2011 um 22:03 Uhr).
MLang ist offline   Mit Zitat antworten
Alt 04.09.2011, 21:56  
Erfahrener Benutzer
 
Registriert seit: 03.08.2010
Beiträge: 1.140
PHP-Kenntnisse:
Anfänger
hausl wird schon bald berühmt werdenhausl wird schon bald berühmt werden
Standard

argh.. mein Fehler.. is wohl schon zu lange aus muss ohne die Hochkommas sein.. Kannst ev. nochmal ohne ' versuchen..

Code:
... Order_Date > #2011-05-11 00:00:00# ...
Betraf mich damals zwar nur unter Access, aber versuchen kann man's ja mal..
zB http://www.ms-office-forum.net/forum...d.php?t=201588

__________________
Keine Zahl != ein Zeichen das keine Zahl ist
hausl ist offline   Mit Zitat antworten
Alt 04.09.2011, 22:07  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Ich meinte dieses Format, mit dem Nachkomma-Anteil:
http://msdn.microsoft.com/en-us/libr...v=sql.80).aspx
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 04.09.2011, 22:19  
Benutzer
 
Registriert seit: 25.02.2011
Beiträge: 42
PHP-Kenntnisse:
Fortgeschritten
MLang befindet sich auf einem aufstrebenden Ast
Standard

So wie ich es verstanden habe ist der mit dem Nachkomma-anteil DATETIME und der ohne ist SMALLDATETIME. Aber wie gesagt das Query funktioniert jetzt so. Leider habe ich noch etwas Problemchen es in Zend korrekt darzustellen aber da schlaf ich ne Nacht drüber dann wird das schon.

Also danke soweit.
MLang ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] MSSQL - Rechen in der WHERE Bedingung Pixelschubser Datenbanken 15 20.06.2011 14:35
Scriptsuche Mssql Script mit PHP ausführen? kalle801 Scriptbörse 1 24.02.2011 17:02
[ERLEDIGT] PHP-SQL WHERE + WHERE NOT in 1 Query EpicRisc Datenbanken 3 18.10.2010 15:18
[Erledigt] Intertabellarische Berechnungen, wie? dave303 Datenbanken 13 05.03.2010 11:58
mysqli_multi_query lässt Eintrag aus... Samhayne Datenbanken 8 07.02.2010 19:02
Ausgabe erfolgt nicht Extremefall PHP Tipps 2009 17 17.12.2009 19:51
XML Import in OOP Creator Software-Design 12 15.12.2009 11:52
[Erledigt] SQL Anweisung sadry PHP Tipps 2009 38 20.08.2009 11:28
MSSQL Abfrage mit if pega42 Datenbanken 0 15.04.2009 15:39
Connection zu MSSQL Server 2008 DonBolli Datenbanken 2 11.04.2009 16:57
Parsen von Delimitern Basti Tutorials 0 30.09.2006 21:24
Befehlsoptimierung faux Datenbanken 4 31.05.2005 19:11
where string von einer funktion zu anderen transportieren PHP Tipps 2005 5 03.03.2005 16:29

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
smalldatetime mssql, mssql smalldatetime, sql abfrage mit smalldatetime als bedingung, php mssql date format, smalldatetime php, ms sql smalldatetime, mssql smalldatetime abfrage, mssql date abfrage, mssql optimize \where not in\, php mssql smalldatetime, php sql smalldatetime, mssql smalldatetime beispiel, where bedingung mit datum mssql, smalldatetime in ms sql query, mssql smaldatetime, sql smalldatetime auf jahr abfragen, php mssql_query smalldatetime, smalldate mssql, smalldatetime mssql select, smalldate mssql select

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:04 Uhr.




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