tutorials.de Buch-Aktion 05/2012
Like Tree4Danke
  • 1 Beitrag von rd4eva
  • 1 Beitrag von rd4eva
  • 1 Beitrag von rd4eva
  • 1 Beitrag von DimpiM
ERLEDIGT
JA
ANTWORTEN
7
ZUGRIFFE
512
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Schormi Schormi ist offline Mitglied Bronze
    Registriert seit
    Sep 2011
    Beiträge
    25
    Hallo,

    ich habe ein Problem, und zwar habe ich eine vorgegebene Datenbank in der ein feld typ Char drin ist, aber in diesem steht das Format yyMMddhhmmss.

    nun muss ich daraus nach datum und zeit abfragen.
    bsp.:
    SELECT status FROM latra WHERE bearbeitung Between ? and ?;

    Das klappt soweit, die Variablen kann ich befüllen, allerdings habe ich ein Problem wenn ich z.B. die zeit zwischen 23:00:00 uhr und 06:00:uhr fragen will kommt kein ergebnis da ja zwischen 120113230000 und 120113060000 logischerweise nichts ist.

    Jetzt müsste ich irgendwie hinbekommen, dass das als Uhrzeit erkannt wird und nicht als String, habe jetzt versuche meinen suchstring in dateTime zu konvertieren mit Convert.ToDateTime(dat), aber er sagt es ist kein zulässiges datetime format.

    bräuchte bischen hilfe, wie kriege ich meine Ergebniss zwischen 23 und 6 uhr?

    P.S.: Nutze Windows Form, C#
     

  2. #2
    Avatar von rd4eva
    rd4eva rd4eva ist offline Mitglied Brillant
    Registriert seit
    Feb 2003
    Beiträge
    756
    Ich hab zwar nur die hälfte verstanden von dem was du vor hast.
    Aber ich nehme mal an du suchst folgendes:
    Code csharp:
    1
    2
    
    string totallyStupidFormatedDatetimeString = "120113230000";
    DateTime date = DateTime.ParseExact(totallyStupidFormatedDatetimeString, "yyMMddHHmmss", new System.Globalization.CultureInfo("de-DE"));
    DimpiM bedankt sich. 
    In order to understand recursion, one must first understand recursion.

  3. #3
    Schormi Schormi ist offline Mitglied Bronze
    Registriert seit
    Sep 2011
    Beiträge
    25
    ok,
    in der Variable Date steht dann: 13.01.2012 23:00:00
    es sollte aber 12.01.1323:00:00 stehen, das war das was ich nicht hinbekomme.
     

  4. #4
    Avatar von rd4eva
    rd4eva rd4eva ist offline Mitglied Brillant
    Registriert seit
    Feb 2003
    Beiträge
    756
    es sollte aber 12.01.1323:00:00 stehen, das war das was ich nicht hinbekomme.
    Und warum? Ich verstehe ehrlich gesagt immernoch nicht so ganz was du vorhast.
    Welches Format die Datetime objekte haben spielt doch eigentlich keine Rolle. Solange es das gleiche Format ist.
    Schormi bedankt sich. 
    In order to understand recursion, one must first understand recursion.

  5. #5
    Schormi Schormi ist offline Mitglied Bronze
    Registriert seit
    Sep 2011
    Beiträge
    25
    Das Format in der Datenbank ist ja yyMMddHHmmss
    und dann brauch ich doch bei Date auch das Format oder?

    also um darauf dann einen SELECT zu machen

    SELECT status FROM latra WHERE bearbeitung Between ? and ?;
     

  6. #6
    Avatar von rd4eva
    rd4eva rd4eva ist offline Mitglied Brillant
    Registriert seit
    Feb 2003
    Beiträge
    756
    Aber dann suchst du doch eigentlich nach einer Möglichkeit ein Datetime objekt in einen string zu konvertieren und nicht anders rum.
    Code csharp:
    1
    2
    
    DateTime date = new DateTime(2012,1,13,23,0,0);
    string dateString = date.ToString("yyMMddHHmmss");
    Geändert von rd4eva (13.01.12 um 13:29 Uhr)
    Schormi bedankt sich. 
    In order to understand recursion, one must first understand recursion.

  7. #7
    DimpiM DimpiM ist offline Mitglied
    Registriert seit
    Oct 2010
    Beiträge
    19
    Du musst ja auch zwischen 06:00 und 23:00 uhr suchen
    bzw zwischen 13.01.2012 23:00 und 14.01.2012 06:00
    Da war der erste Post von rd4eva genau das richtige, danach musst du das date nur nochmal in ein String zurückschreiben und dann kannst du dein Befehl übergeben.

    Wenn du des richtig auf SQL-Ebene machen möchtest, dann geht es so
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    DECLARE @datetimeStart datetime;
    DECLARE @dateStart nvarchar(6);
    DECLARE @timeStart nvarchar(6);
     
    SET @dateStart = SUBSTRING('120114060000',1,6);
    SET @timeStart = SUBSTRING('120114060000',7,12);
     
    SET @datetimeStart = CONVERT(datetime,@dateStart
                            +' '+SUBSTRING(@timeStart,1,2)
                            +':'+SUBSTRING(@timeStart,3,2)
                            +':'+SUBSTRING(@timeStart,5,2))
    Schormi bedankt sich. 

  8. #8
    Schormi Schormi ist offline Mitglied Bronze
    Registriert seit
    Sep 2011
    Beiträge
    25
    dankeschön euch beiden ich bin sooo dämlich,
    warum es bei mir nach dem ersten post nicht funktioniert hat ich hab den Tag nicht raufgezählt, aber jetzt gehts.

    danke nochmal
     

Ähnliche Themen

  1. String in Datums-Format konvertieren
    Von Lautsprecher im Forum Visual Basic 6.0
    Antworten: 1
    Letzter Beitrag: 02.02.09, 23:45
  2. DateTime anderes Format ausgeben?
    Von heiko263 im Forum .NET Café
    Antworten: 3
    Letzter Beitrag: 08.09.05, 11:51
  3. datetime format
    Von [planlos]Shorty im Forum PHP
    Antworten: 1
    Letzter Beitrag: 11.03.05, 01:11
  4. string zu DateTime konvertieren
    Von der_Brain im Forum .NET Archiv
    Antworten: 4
    Letzter Beitrag: 10.02.05, 13:43
  5. datetime problem mit 12h format
    Von derGugi im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 22.04.03, 16:01