tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
595
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    gifhouse gifhouse ist offline Grünschnabel
    Registriert seit
    Dec 2011
    Beiträge
    3
    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)
     

  2. #2
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.506
    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, ...?

  3. #3
    gifhouse gifhouse ist offline Grünschnabel
    Registriert seit
    Dec 2011
    Beiträge
    3
    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)
     

  4. #4
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.506
    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, ...?

  5. #5
    gifhouse gifhouse ist offline Grünschnabel
    Registriert seit
    Dec 2011
    Beiträge
    3
    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

  1. Antworten: 3
    Letzter Beitrag: 27.12.10, 11:27
  2. RSS und das DATETIME
    Von djscorpion im Forum PHP
    Antworten: 2
    Letzter Beitrag: 12.04.08, 10:49
  3. datetime
    Von oldputz1990 im Forum PHP
    Antworten: 2
    Letzter Beitrag: 03.09.07, 23:05
  4. DateTime - DateTime = ... (in Minuten)
    Von stephan r. im Forum .NET Archiv
    Antworten: 2
    Letzter Beitrag: 25.05.05, 16:32
  5. DATETIME und BETWEEN?
    Von Wolfsbein im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 14.08.03, 18:56

Stichworte