![]() |
Re: MSSQL Stored Procedure -> datetime vergleichsprobleme
Zitat:
Aber der Minutenbereich ist doch eigendlich zu groß?
SQL-Code:
Damit wird doch nicht nur die gewünschte Zeit, sondern auch 1 Minute vorher/nachher zurückgeliefert, oder?
WHERE Table.DateTimeField Between DateAdd(minute,-1,@Date) and DateAdd (minute,1,@Date)
|
Re: MSSQL Stored Procedure -> datetime vergleichsprobleme
Dann nimm halt ne Sekunde ('second') oder 'millisecond'.
|
Re: MSSQL Stored Procedure -> datetime vergleichsprobleme
Zitat:
1.) reicht das nicht schon alleine?
SQL-Code:
2.) wozu ist denn das hier jetzt genau?!:
WHERE Table.DateTimeField Between DateAdd(second,-1,@Date) and DateAdd (second,1,@Date)
SQL-Code:
3.) und was die Funktion DateOnly genau aus meinem Datum macht erkenn ich auch nicht so auf den ersten Blick?!
AND dbo.DateOnly (Table.DateTimeField) = dbo.DateOnly(@Date)
aber vielen Dank schon mal für die vielversprechenden Antworten //EDIT sehe ich das richtig: dieses hier:
SQL-Code:
vergleicht nur die sekunden, nicht aber das Datum und die Zeit auf sekunden genauigkeit?
WHERE Table.DateTimeField Between DateAdd(second,-1,@Date) and DateAdd (second,1,@Date)
deshalb muss ich mit
SQL-Code:
noch das Datum vergleichen?
AND dbo.DateOnly (Table.DateTimeField) = dbo.DateOnly(@Date)
trotzdem was macht die Funktion DateOnly genau? |
Re: MSSQL Stored Procedure -> datetime vergleichsprobleme
Hi,
Zitat:
Vorkomma- und die Zeit im Nachkommateil abgebildet sind. Die DateOnly-Funktion macht nichts anderes, als den Nachkommateil abzuschneiden. |
Re: MSSQL Stored Procedure -> datetime vergleichsprobleme
achso, dann kapier ich jetz DateOnly ;-)
aber: hab mal kurz einen neuen Versuch gestartet und in der WHERE Klausel steht jetzt nur noch folgendes: weder so...
SQL-Code:
noch so...
[t_bb_folder_info].[date_time] Between DateAdd(hour,-1,@date_time) and DateAdd(hour,1,@date_time)
SQL-Code:
... findet sql die gewünschten datensätze mein SELECT SUM() gibt also NULL resp. 0 zurück ;-(
DateAdd(hour,0,[t_bb_folder_info].[date_time]) Between DateAdd(hour,-1,@date_time) and DateAdd(hour,1,@date_time)
ich mach wohl noch was anderes falsch, aber was denn? |
Re: MSSQL Stored Procedure -> datetime vergleichsprobleme
Hi,
um zu sehen, mit welchen Werten gearbeitet wird, lass dir die Daten doch mal anzeigen:
SQL-Code:
Das hier übrigends...
select DateAdd(hour,-1,@date_time), DateAdd(hour,1,@date_time), [t_bb_folder_info].[date_time] ...
SQL-Code:
hat wieder das Problem mit dem Index, da die Tabellenspalte in einer Funktion "verpackt" ist
where DateAdd(hour,0,[t_bb_folder_info].[date_time]) Between ...
und somit kein Index verwendet werden kann. |
Re: MSSQL Stored Procedure -> datetime vergleichsprobleme
wie wärs dann damit?
SQL-Code:
geht bei mir aber leider auch net...
CAST([t_bb_folder_info].[date_time] AS CHAR(25)) = CAST(@date_time AS CHAR(25))
ich hab so langsam aber sicher das Gefühl, dass bei mir etwas ganz faul ist... denn wenn ich ein select auf mein gespeichertes datum mache sieht das so aus:
SQL-Code:
wenn ich nun meine procedure ausführe und als @date_time parameter ebenfalls
2008-05-07 15:16:32.000
SQL-Code:
mitgebe funktioniert ja das alles nicht mit keiner bisher getesteten variante...
2008-05-07 15:16:32.000
Zitat:
SQL-Code:
???
CAST("2008-05-07 15:16:32.000" AS datetime);
//EDIT Zitat:
|
Re: MSSQL Stored Procedure -> datetime vergleichsprobleme
Zitat:
ausgabe:
SQL-Code:
usw
2008-07-05 14:16:32.000 ¦ 2008-07-05 16:16:32.000 ¦ 2008-05-07 15:16:32.000
2008-07-05 14:16:32.000 ¦ 2008-07-05 16:16:32.000 ¦ 2008-05-07 15:16:32.000 2008-07-05 14:16:32.000 ¦ 2008-07-05 16:16:32.000 ¦ 2008-05-07 15:16:32.000 2008-07-05 14:16:32.000 ¦ 2008-07-05 16:16:32.000 ¦ 2008-05-07 15:16:32.000 |
Re: MSSQL Stored Procedure -> datetime vergleichsprobleme
Hi,
lass doch erstmal alles Andere weg und bau dir eine Select-Anweisung zusammen, die das Gewünschte liefert. Dazu nimmst du das SQl-Query-Tool oder die Management-Console von MS. Wenn das Select dann funktioniert, gehts in Delphi weiter... Wenn´s dann immer noch nich klappt, poste mal eine paar Beispieldaten samt deinem kompetten Select. :wink: Zitat:
Bedingung richtig fornuliert ist. |
Re: MSSQL Stored Procedure -> datetime vergleichsprobleme
SQL-Code:
gibt mir keinen einzigen datensatz zurück...
declare
@date_time datetime SET @date_time = CAST('2008-05-07 15:16:32.000' AS datetime); SELECT folder_size FROM [t_bb_folder_info] where [t_bb_folder_info].[date_time] Between DateAdd(hour,-1,@date_time) and DateAdd(hour,1,@date_time) obwohl
SQL-Code:
folgendes zurück gibt:
declare
@date_time datetime SET @date_time = CAST('2008-05-07 15:16:32.000' AS datetime); SELECT DateAdd(hour,-1,@date_time), DateAdd(hour,1,@date_time), [t_bb_folder_info].[date_time] FROM [t_bb_folder_info]
SQL-Code:
2008-07-05 14:16:32.000 ¦ 2008-07-05 16:16:32.000 ¦ 2008-05-07 15:16:32.000
2008-07-05 14:16:32.000 ¦ 2008-07-05 16:16:32.000 ¦ 2008-05-07 15:16:32.000 2008-07-05 14:16:32.000 ¦ 2008-07-05 16:16:32.000 ¦ 2008-05-07 15:16:32.000 2008-07-05 14:16:32.000 ¦ 2008-07-05 16:16:32.000 ¦ 2008-05-07 15:16:32.000 . . . |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz