Probleme Abfrage DateTime

Hallo zusammen.

Ich habe folgendes Problem und zwar möchte ich mittels LIKE mehrere Datensätze aus meiner SQL-Tabelle tblData erhalten und zwar so:

SELECT dTime, duration FROM tblData WHERE pcId='1'
AND dTime like '%2008%' ORDER BY dTime DESC

Mit dem LIKE %2008% klappts einwandfrei, ich erhalte alle Datensätze aus dem Jahr 2008. Jedoch, wenn ich nun mit folgendem Statement:

SELECT dTime, duration FROM tblData WHERE pcId='1'
AND dTime like '%2008-12-09%' ORDER BY dTime DESC

abfrage erhalte ich keine Datensätze, warum das?? Ich weiß es sind Datensätze beginnend mit %2008-12-09% vorhanden!!

Mit besten Dank.

Grüße Sebastian

Hallo Sebastian,

Ich habe folgendes Problem und zwar möchte ich mittels LIKE
mehrere Datensätze aus meiner SQL-Tabelle tblData erhalten und
zwar so:

SELECT dTime, duration FROM tblData WHERE pcId=‚1‘
AND dTime like ‚%2008%‘ ORDER BY dTime DESC

Mit dem LIKE %2008% klappts
einwandfrei, ich erhalte alle Datensätze aus dem Jahr 2008.
Jedoch, wenn ich nun mit folgendem Statement:

SELECT dTime, duration FROM tblData WHERE pcId=‚1‘
AND dTime like ‚%2008-12-09%‘ ORDER BY dTime DESC

abfrage erhalte ich keine Datensätze, warum das?? Ich weiß es
sind Datensätze beginnend mit
%2008-12-09% vorhanden!!

versuch es mal so

SELECT dTime, duration FROM tblData WHERE pcId=‚1‘
AND to_char(dTime,‚yyyy-mm-dd‘) = ‚2008-12-09‘ ORDER BY dTime DESC

Selektierte Grüße Grisu

Hi Grisu.

versuch es mal so
SELECT dTime, duration FROM tblData WHERE pcId=‚1‘
AND to_char(dTime,‚yyyy-mm-dd‘) =
‚2008-12-09‘
ORDER BY dTime DESC

Ich denke, bin mir aber nicht sicher, du schreibst in Oracle SQL, ich brauche MS SQL!! Habe hier den SQL Server 2008 installiert.

Habe nun eine passende Funktion in SQL equivalent zu deinem to_char() in Oracle!

Und zwar sieht mein SQL-Statement so aus:

SELECT dTime, duration FROM tblData WHERE pcId='1' AND CONVERT(Varchar(10),dTime,111) like '2008/12/09' 

Nun klappts, ich bekomme meine gewünschten Zeilen angezeigt.

Gruß Sebastian

Hi Sebastian,

Ich denke, bin mir aber nicht sicher, du schreibst in Oracle
SQL, ich brauche MS SQL!! Habe hier den SQL Server 2008
installiert.

Ja, meine Lösung basiert auf Oracle.
Hättest Du kein Geheimnis aus Deiner SQL-Version gemacht…
Klar, ich hätte ja auch fragen können, aber das PingPong
ist dann doof.

SELECT dTime, duration FROM tblData WHERE pcId=‚1‘ AND
CONVERT(Varchar(10),dTime,111) like ‚2008/12/09‘
Nun klappts, ich bekomme meine gewünschten Zeilen angezeigt.

Jetzt aufgeklärte Grüße Grisu

Hi Grisu.

Ja, meine Lösung basiert auf Oracle.
Hättest Du kein Geheimnis aus Deiner SQL-Version gemacht…
Klar, ich hätte ja auch fragen können, aber das PingPong
ist dann doof.

*lol* stimmt! Trotzdem danke für den Ansatz, ohne den Ansatz wäre ich nicht zu meiner Lösung gekommen.

SELECT dTime, duration FROM tblData WHERE pcId=‚1‘ AND
CONVERT(Varchar(10),dTime,111) like ‚2008/12/09‘
Nun klappts, ich bekomme meine gewünschten Zeilen angezeigt.

Meine hier gepostete Lösung ist ziemlich tricky… Habe noch eine bessere Variante gefunden und zwar:

SELECT dTime, duration FROM tblData WHERE pcId='1' AND 
year(dTime)='2008' AND month(dTime)='12' AND day(dTime)='09'

Diese Variante ist flexibler und natürlich auch besser, warum CONVERT() zu verwenden, wenn es so schöne Datefunktionen von SQL gibt…

Schönen Tag.
Sebastian