ERLEDIGT
JA
JA
ANTWORTEN
4
4
ZUGRIFFE
595
595
EMPFEHLEN
-
Hallo
ich suche jetzt schon seit Stunden und werde nicht fündig...
Ich hoffe hier kann mir jemand helfen.. mein Problem:
Ich habe eine MSSQL 2005 Tabelle mit einem DATETIME (20.12.2011 19:12:44) Feld
und möchte aus dieser Tabelle Spalten löschen wenn der aktuelle Datum/Uhrzeit Wert kleiner ist als der in der Tabelle gespeicherte Wert.
Wie kann ich hier z.B. nur auf die Stunde abfragen ob der DB Wert kleiner ist als die aktuelle Uhrzeit
bereits an dieser Stelle Danke für eure Hilfe
Th.
edit:
Na ja hier scheinbar auch nicht...
Oder hab ich was falsch, oder noch nicht, oder sonst einen Fehler gemacht der Forenspezifisch zum Ignorieren von Anfragen führt?Geändert von gifhouse (20.12.11 um 17:01 Uhr)
-
Hi und Willkommen bei tutorials.de,
Sorry für die späte Antwort, liegt nicht an deiner Frage.
Hilft dir der Code von hier unten weiter?
Code sql:1 2 3
SELECT * FROM Auftrag WHERE Auftragsdatum BETWEEN CONVERT(datetime, '15.05.2005 00:00:00', 104) AND CONVERT(datetime, '15.05.2005 23:59:59', 104)
GrußNetiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
erstmal ein danke an dich das du dich erbarmt hast

Ist denke ich aber nicht das was ich brauche...
Ich habe in der Datenbank ständig neue DATETIME Einträge, diese werden als Datum UND Uhrzeit im Datentyp DATETIME im Format tt.mm.jjjj hh:mm:ss abgespeichert. So ein Eintrag hat eine maximale Gültigkeit von 3 Stunden, und soll anhand einer sich alle 3 Stunden ausführenden T-SQL Anweisung ( SQL Server AGENT )gelöscht werden.
Soweit ich Daten löschen möchte die älter als z.B. 20.12.2011 sind geht das so:
Code sql:1 2
DELETE poi WHERE datediff(DAY,Gdatum,getdate())=1
Wobei Gdatum das DATETIME Feld ist
Wie aber jetzt wenn ich das anhand der Stunde lösen möchte?
Code sql:1 2
DELETE poi WHERE datediff(HOUR,Gdatum,getdate())=1
funktioniert nicht... der Datensatz wird nicht gelöscht******!********?Geändert von gifhouse (21.12.11 um 21:01 Uhr)
-
Das mit dem Tag funktioniert also?
Das ist seltsam...
Wäre nicht ein >= angebrachter?
Alles löschen, wo das Alter mehr als ... ist?
Mit = löscht du doch nur, was genau eine Stunde alt ist. Zwei, drei Stunden etc. nicht.
Probiers mal mit >=
Code sql:1 2
DELETE poi WHERE datediff(HOUR,Gdatum,getdate())>=1
Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
Ja Danke der Ansatz ist richtig...
das Problem ist gelöst...
So sieht das dann korrekt aus:
Code sql:1 2
DELETE poi WHERE ABS(datediff(HOUR,Gdatum,getdate())) >=3
Geändert von gifhouse (21.12.11 um 21:02 Uhr)
Ähnliche Themen
-
Bild kleiner machen wenn Auflösung kleiner
Von YelloW22 im Forum CSSAntworten: 3Letzter Beitrag: 27.12.10, 11:27 -
RSS und das DATETIME
Von djscorpion im Forum PHPAntworten: 2Letzter Beitrag: 12.04.08, 10:49 -
datetime
Von oldputz1990 im Forum PHPAntworten: 2Letzter Beitrag: 03.09.07, 23:05 -
DateTime - DateTime = ... (in Minuten)
Von stephan r. im Forum .NET ArchivAntworten: 2Letzter Beitrag: 25.05.05, 16:32 -
DATETIME und BETWEEN?
Von Wolfsbein im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 14.08.03, 18:56





Zitieren

Login





