![]() |
Re: MSSQL Stored Procedure -> datetime vergleichsprobleme
Zitat:
SQL-Code:
getippt und nicht getestet
declare @Date_Time datetime
set @Date_Time = '2008-05-07 15:16:32' select * from [t_bb_folder_info] where [t_bb_folder_info].[date_time] between DateAdd(second, -1, @Date_Time) and DateAdd(second, 1, @DateTime) |
Re: MSSQL Stored Procedure -> datetime vergleichsprobleme
Also jetzt seh ichs auch aber Hallo, da stimmt doch definitiv etwas nicht?! *hirnschleiff*
SQL-Code:
erzeugt folgende ausgabe
declare
@date_time datetime SET @date_time = CAST('2008-07-05 15:16:32.000' AS datetime); SELECT * FROM [t_bb_folder_info] where [t_bb_folder_info].[date_time] Between DateAdd(second,-1,@date_time) and DateAdd(second,1,@date_time)
SQL-Code:
also oben beim Select gebe ich dieses datetime mit: '2008-07-05 15:16:32.000' dann findet es dieses datetime '2008-05-07 15:16:32.000'
172743 ¦ C:\Dokumente und Einstellungen\th21498\ ¦ 8789271 ¦ 2008-05-07 15:16:32.000 ¦ 12
172744 ¦ C:\Dokumente und Einstellungen\th21498\borland ¦ 5117 ¦ 2008-05-07 15:16:32.000 ¦ 12 172745 ¦ C:\Dokumente und Einstellungen\th21498\.revj0079 ¦ 4542 ¦ 2008-05-07 15:16:32.000 ¦ 12 172746 ¦ C:\Dokumente und Einstellungen\th21498\.SunDown... ¦ 97451 ¦ 2008-05-07 15:16:32.000 ¦ 12 . . . spinn ich jetzt??????????????????????? :wall: |
Re: MSSQL Stored Procedure -> datetime vergleichsprobleme
Hi,
das liegt dann an deinem eingestellen Datumformat des SQl-Servers. Nimm mal das
SQL-Code:
[edit]
set dateformat ymd
declare @Date_Time datetime set @Date_Time = '2008-05-07 15:16:32' select * from [t_bb_folder_info] where [t_bb_folder_info].[date_time] between DateAdd(second, -1, @Date_Time) and DateAdd(second, 1, @DateTime) unabhängig vom eingstellten Datumformat ist folgendes set @Date_Time = '20080507 15:16:32.000' [/edit] |
Re: MSSQL Stored Procedure -> datetime vergleichsprobleme
hmmm...
SQL-Code:
es ist ein produktiver MSSQL Server auf dem sehr wichtige "Programme" laufen ich schätze das kann ich mir nicht erlauben sonst werd ich noch gesteinigt :lol:
set dateformat ymd
kann ich das Problem nicht anders lösen? |
Re: MSSQL Stored Procedure -> datetime vergleichsprobleme
Zitat:
und heisst das mein Programm würde dann nicht mehr so richtig funktionieren wenn der SQL -Server ein anderes Datumsformat hätte? |
Re: MSSQL Stored Procedure -> datetime vergleichsprobleme
Hi,
Zitat:
Zitat:
Vom Programm werden (hoffendlich) direkt Datetime-Werte geliefert. Zitat:
dann ist es eben unabhängig von den Server-Einstellungen. |
Re: MSSQL Stored Procedure -> datetime vergleichsprobleme
also bitte nochmals für all diejenigen, die einen IQ < 100 haben :lol:
Zitat:
als Parameter wird aber bereits ein datetime Wert geliefert wie du das ja hoffst, also wo passiert dann das Umwandeln von String in Datetime... am schluss habe ich ja nirgens mehr ein String Wert.. eine solche Umwandlung wird es nie geben... :wiejetzt: |
Re: MSSQL Stored Procedure -> datetime vergleichsprobleme
Zitat:
SQL-Code:
Wenn dein Select dann das gewünschte Ergebnis liefert, baust du das
declare @Date_Time datetime
set @Date_Time = '20080507 15:16:32.000' select ... in eine Procedure und prüft diese nochmal per Aufruf aus dem Query-Tool (hierbei wieder das Datumformat beachten). Geht das auch, dann weiter in Delphi... |
Re: MSSQL Stored Procedure -> datetime vergleichsprobleme
ok... ich meld mich dann wieder wenn ich soweit bin...
|
Re: MSSQL Stored Procedure -> datetime vergleichsprobleme
ok also SELECT funktionierte... meine StoredProc scheint es auch zu tun... so sieht sie nun aus:
SQL-Code:
mit dem aufruf direkt vom Server funktioniert das so:
ALTER PROCEDURE [dbo].[p_bb_ignore_folder]
@username varchar(30), @ignore_dir varchar(255), @date_time datetime AS DECLARE @size bigint, @id_user int SET @size = -1; SET @id_user = (SELECT [t_bb_user].[id_user] FROM [t_bb_user] WHERE [t_bb_user].[username] = @username); SET @size = ( SELECT SUM([t_bb_folder_info].[folder_size]) FROM [t_bb_folder_info] WHERE ( [t_bb_folder_info].[id_user] = @id_user AND [t_bb_folder_info].[folder] LIKE @ignore_dir AND dbo.DateOnly([t_bb_folder_info].[date_time]) = dbo.DateOnly(@Date_Time) AND [t_bb_folder_info].[date_time] BETWEEN DateAdd(millisecond, -1, @Date_Time) and DateAdd(millisecond, 1, @Date_Time) ) ); UPDATE t_bb_logon SET [t_bb_logon].[ignore_dir_size] = @size WHERE ( [t_bb_logon].[id_user] = @id_user AND dbo.DateOnly([t_bb_logon].[date_time]) = dbo.DateOnly(@Date_Time) AND [t_bb_logon].[date_time] BETWEEN DateAdd(millisecond, -1, @Date_Time) and DateAdd(millisecond, 1, @Date_Time) ); RETURN @size
SQL-Code:
alles palleti...
declare
@result bigint EXEC @result = p_bb_ignore_folder 'th21498', 'C:\Dokumente und Einstellungen\th21498\Lokale Einstellungen\%', '20080507 15:16:32.000' print CAST(@result AS CHAR(255)); wie befürchtet funktioniert der Aufruf aus meiner Delphi-Applikation leider nicht. Meine Vermutung -> eben das angesprochene ydm <-> ymd Problem... meint Aufruf in Delphi:
Delphi-Quellcode:
wie stelle ich das nun an...
procedure TSisterWatch.IgnoreDir(Date_Time: TDateTime);
var tmp_igp: String; begin tmp_igp := GetIgnoreDir; if tmp_igp <> '' then begin with ADOStoredProc8 do begin Parameters.ParamValues['@username'] := Username; Parameters.ParamValues['@ignore_dir'] := tmp_igp; Parameters.ParamValues['@date_time'] := Date_Time; ExecProc; end; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:06 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-2025 by Thomas Breitkreuz