[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Apr 2005
    Beiträge
    14
    mein feld opdauer ist aber kein timestamp mehr sondern datetime

    wenn ich die die schnittzeit von der nahtzeit abziehe dann funktioniert das auch so weit ganz gut,

    nur es wird zusätzlich noch das datum dazu ausgegeben ......

    da muss es doch ne funktion geben , wo ich das datum einfach abschneiden kann so das ich als ergebnis NUR die dauer (z.b. 02:50:00) habe

    die getdate- funktion hilft mir in diesem fall nicht wirklich weiter alles was ich benötige ist die zeit in hh:mm:ss

    Meine syntax :

    update opdauer
    set opdauer=nahtzeit-schnittzeit

    gibt es dafür keine explizite lösung??

    vielen dank!!

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Zitat Zitat von Corraggiouno
    mein feld opdauer ist aber kein timestamp mehr sondern datetime

    wenn ich die die schnittzeit von der nahtzeit abziehe dann funktioniert das auch so weit ganz gut,

    nur es wird zusätzlich noch das datum dazu ausgegeben ......

    da muss es doch ne funktion geben , wo ich das datum einfach abschneiden kann so das ich als ergebnis NUR die dauer (z.b. 02:50:00) habe

    die getdate- funktion hilft mir in diesem fall nicht wirklich weiter alles was ich benötige ist die zeit in hh:mm:ss

    Meine syntax :

    update opdauer
    set opdauer=nahtzeit-schnittzeit

    gibt es dafür keine explizite lösung??

    vielen dank!!
    Wenn Dein Feld ein TimeStamp oder, wie Du es ausdrückst ein DateTime Format hat, muss auch Datum und Zeit drin stehen!
    Was Du siehst ist nicht das, was tatsächlich in einem Zeit-Feld steht, sondern lediglich eine Aufbereitung. Du kannst über Funktionen DATE(), TIME() nur den Datums- oder Zeit-Anteil ermitteln und anzeigen, wenn das so erforderlich ist.

    Vermutlich ist nicht nur die OpDauer eine Zeitmarke sondern auch die anderen beiden Felder.

    Select Time(OpDauer) from MyFile

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  3. #3
    Registriert seit
    Apr 2005
    Beiträge
    14
    sorry , die function "time" gibt es nicht in sql......

    sorry , wenn ich nochmal die syntax verwende z.b.

    update opdauer
    set opdauer=nahtzeit-schnittzeit

    folgendes ergebnis: 01.01.1900 01:35:00

    ok gibt es vielleicht ne funktion wo ich das
    (01.01.1900) abschneiden kann ?????

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    NOCHMAL !!!
    Die Funktion heisst beim SQL-Server DATEPART.
    Entweder du definierst deine Variable als Typ TIME (was bei einer Dauer über 24 Stunden ein Problem wird) oder du machst einen

    select datepart(hh, opdauer), datepart(mi, opdauer), datepart(ss, opdauer) ....

    Alternativ könnte auch
    select substr(cast(opdauer as char(20)), 10, 8) ...
    funktionieren.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    Registriert seit
    Apr 2005
    Beiträge
    14
    guten morgen,

    das mit der select anweisung und der funktion datepart habe ich jetzt begriffen.....

    aber was kommt jetzt noch hinzu.....

    select datepart(hh,opdauer), datepart(mi,opdauer)

    folgt jetzt auf die select anweisung noch ein update oder wie muss ich jetzt weiter
    verfahren??

    Vielen dank im voraus!!

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Ich weiß ja nicht was du mit "opdauer" bezweckst.
    Aber nochmal:
    Dein Feld "opdauer" ist als Datetime definiert, wird also IMMER ein Datum enthalten.
    Mit der Funktion Datepart kannst du nun den Teil den du brauchst beim Select extrahieren.
    Speichern kannst du nur die Zeit NICHT solange du das Feld opdauer nicht auch als Time-Feld umdefinierst !!!
    Mit deinem Select w.o. erhältst du nun die Dauer in Stunden und Miniuten.
    Wozu dann noch einen Update ?!
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  7. #7
    Registriert seit
    Apr 2005
    Beiträge
    14

    Smile

    guten morgen,

    bevor ich aber meine select anweisung und die datepart function deklariere (wie oben) muss ich doch zuerst hinschreiben wie sich die opdauer überhaupt zusammen setzt also

    muss ich doch zuerst die nahtzeit - schnittzeit nehmen und dann kann ich doch erst die datepart function schreiben

    oder liege ich da falsch??

    Vielen dank!!!

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Ich glaube wir reden da aneinander vorbei.
    Ich nehme mal an, dass dein Feld opdauer permanent in der Datenbank gespeichert werden soll. Dies erreichst du mit der o.a. Update-Anweisung.
    Für eine spätere Auswertung der opdauer kannst du dann im Select die Datepart-Funktion verwenden um nur den Zeitanteil herauszubekommen.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  9. #9
    Registriert seit
    Apr 2005
    Beiträge
    14
    ok , das habe ich verstanden ,

    jetzt hätte ich noch ne ähnliche frage,

    kann ich mit dieser sql anweisung

    - wenn ich folgende zeit habe (01.01.1900 00:50:00) -

    das datum vorne abschneiden

    ich verwende folgende syntax

    !!die zweite opdauer ist der spaltenname!!

    update opdauer
    set opdauer = cdate (left$(opdauer,6))

    , aber leider endet diese in einem fehler '' left$ is a recognized function name''

    habt ihr vielleicht eine kleinen tipp, wie ich es besser machen kann ?

    Vielen dank!!!

  10. #10
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Die Funktion heißt eigentlich SUBSTR, aber was willst du damit erreichen ?
    opdauer ist doch ein datetime-Feld. Es wird also automatisch wieder der 1.1.1900 davorgesetzt !!!!!!!!!!!
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  11. #11
    Registriert seit
    Apr 2005
    Beiträge
    14
    guten morgen,

    ich hätte da mal noch ne frage, ich hoffe ich bin nicht aufdringlich, aber ihr habt mir bis jetzt am meisten weitergeholfen....

    vielen dank

    jetzt zu meinem problem:

    ich habe eine tabelle oppersonal :
    mit den spalten:
    opnr, operateur, assistent, pflege, personalname, personalnr
    - in den spalten opnr, operateur, assistent, pflege sind keine Inhalte ----> NULL


    eine weitere tabelle OPERS: mit den spalten: opnr, personalnr (beide vom typ integer)

    und eine letzte tabelle PPERS: ebenfalls mit den spalten opnr, personalnr(auch beide vom typ integer)

    da ja in der tabelle oppersonal in der spalte opnr nichts drin steht ----> also NULL

    möchte ich jetzt diese füllen ,

    ich muss doch jetzt eine abfrage starten wo ich die personalnummer und die opnr aus den tabellen ppers und opers mit einander verknüpfe und eben

    diese spalte opnr in der tabelle oppersonal fülle

    ich weis leider nicht wie ich diese abfrage machen soll

    bitte helft mir doch weiter

    Vielen dank im voraus!

Similar Threads

  1. SNDDST ohne SMTP-Job aber mit Domino Server?
    By rebe in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 23-01-07, 16:06
  2. AS/400 und SQL Server 2000
    By rcauchy in forum NEWSboard Windows
    Antworten: 9
    Letzter Beitrag: 06-06-05, 10:24
  3. mssql server 2000 - tabelle updaten
    By Corraggiouno in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 31-05-05, 08:46
  4. AS/400 Zugriff via Linked Server unter SQL Server 2000
    By epsih2 in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 29-11-04, 10:06
  5. AS 400 e und Win 2000 Server
    By Xenox in forum NEWSboard Windows
    Antworten: 2
    Letzter Beitrag: 29-01-02, 17:24

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •