Announcement

Collapse
No announcement yet.

Datum formatieren

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Datum formatieren

    Hallo Leute
    ich bin neuling im Bereich SQL und auf der Suche folgende Lösung.

    Es geht um folgende Tabelle. In dieser Tabelle ist 2. Spalte also Datum für uns relevant.

    11364008mq.png

    Wenn ich folgende Abfrage ausführe, dann erhalte ich das gewünschte Ergebnis.

    Code:
    SELECT AWB, TMST FROM TDSOS_AWB_LOCKS WHERE TMST < (SYSDATE-(1/48))
    Das Ergebnis:

    11364008mq.png

    Im Ergebnis wird bei 2. Spalte TMST mit Datum und Zeit ausgegeben wie ich gewünscht habe.

    Nun bin ich dabei ein Shell Script zu schreiben. Mein Script soll die Datenbank Tabelle auslesen und das Ergebnis ausgeben.

    Code:
    #!/bin/csh
    ####################################################################################
    ## CheckscriptForAwbLocker.sh  - Levent Oturak U102601    02.08.2012
    ####################################################################################
    ##
    ####################################################################################
    
    
    echo "========================================================================="
    echo "Diese Script überprüft die AWB Locker Tabelle"
    echo "gibt aus, sobald ein Eintrag in der AWBLocker Tabelle enthalten ist, "
    echo "dessen Timestamp kleiner als (aktuelles Datum - 30) sind."
    echo "========================================================================="
    
    #directories
    set tempDir = "$HOME/temp/"
    set tempSqlQuery = "$HOME/temp/CheckSqlAwbLocker.sql"
    set targetSuffix = ".stat"
    set dailyReport = "$HOME/temp/Ergebnis$targetSuffix"
    
    
    ###############################
    ## build SQL Query 
    ###############################
    
    echo "set pagesize 0" > $tempSqlQuery
    echo "set linesize 800" >> $tempSqlQuery
    echo "set heading off" >> $tempSqlQuery
    echo "set headsep off" >> $tempSqlQuery
    echo "set feedback off" >> $tempSqlQuery
    echo "set trimspool on" >> $tempSqlQuery
    echo "set wrap off" >> $tempSqlQuery
    echo "set pause off" >> $tempSqlQuery
    echo "set trim on" >> $tempSqlQuery
    echo "set tab off" >> $tempSqlQuery
    echo "set space 1" >> $tempSqlQuery
    echo "set recsep off" >> $tempSqlQuery
    
    echo "SELECT AWB, TMST " >> $tempSqlQuery
    echo "FROM TDSOS_AWB_LOCKS " >> $tempSqlQuery
    echo "WHERE TMST < (SYSDATE-(1/48));" >> $tempSqlQuery
    
    echo "quit;">>$tempSqlQuery
    
    #execute query
    
    sqlplus -s $DBMASTER_USER/$DBMASTER_PASSWORD @$tempSqlQuery >> $dailyReport
    In der Ausgabe Datei sieht aber Datum folgendes aus.

    11366258eh.png

    Also sieht man nur Datum, aber nicht Zeit. Wie kann ich in meinem Shell Script TMST so konvertieren, damit ich im Ergebnis das Datum mit richtigem Format (wie im SQL) ausgegeben erhalten kann.

    Vielen Dank im Voraus

    Gruß
    Basay

  • #2
    Originally posted by beterman View Post
    Also sieht man nur Datum, aber nicht Zeit. Wie kann ich in meinem Shell Script TMST so konvertieren, damit ich im Ergebnis das Datum mit richtigem Format (wie im SQL) ausgegeben erhalten kann.
    Anhand des Scripts gehe ich davon aus, dass es ein Oracle Script ist, mangels Bedarf kenne ich keine allgemeingültigen SQL Datumsformatfunktionen, daher also eine Oracle Lösung (Thread müsste dann evtl. verschoben werden)

    Du kannst entweder das Datumsformat Deiner Sitzung ändern oder eine Textkonvertierung vornehmen:
    [highlight=sql]alter session set NLS_DATE_FORMAT=’DD.MM.YYYY hh24:mi:ss’;[/highlight]
    oder
    [highlight=sql]select .., to_char(myDateColumn, ’DD.MM.YYYY hh24:mi:ss’ from myTable;[/highlight]

    Wann sich was anbietet, entscheidet sich nach benötigtem Ausgabeformat/-varianten, muss der Typ Date erhalten bleiben?, .. usw.
    Gruß, defo

    Comment

    Working...
    X