Announcement

Collapse
No announcement yet.

Timestamp nur Uhrzeit

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

  • Timestamp nur Uhrzeit

    Hallo,

    ich würde gerne aus einem Timestamp nur die Uhrzeit rausbekommen, jedoch funktioniert das nicht was ich habe..
    Wäre schön wenn mir jmd helfen würde..
    Code:
    CONVERT(varchar(12), ${DATUM_START_PARAM}, 114)
    DATUM_START_PARAM = Timestamp = 1. Juni 2010 08:00:00 MESZ
    Zuletzt editiert von Colttt; 14.06.2010, 15:46.

  • #2
    select convert(varchar(8),getdate(),14)

    Comment


    • #3
      hallo,

      es müsste dann also wie folgt aussehen, richtig?! funktioniert bei mir aber leider nicht
      Code:
      convert(varchar(8),  ${DATUM_START_PARAM},14)
      bzw
      Code:
       select convert(varchar(8),'1. Juni 2010 08:00:00 MESZ',114)
      ich bekomme dann 1.Juni raus und nicht die Uhrzeit, also 08:00:00

      Comment


      • #4
        hm, bei mir ergibt

        Code:
        declare @DATUM_START_PARAM as datetime
        set @DATUM_START_PARAM = cast('2009-01-01' as datetime)
        
        select convert(varchar(8), @DATUM_START_PARAM,14)
        "00:00:00"

        Machst du das aus einer externen Anwendung heraus? Ist deine Variable irgendwo definiert?

        Comment


        • #5
          die variable wird eingelesen von einem externen Programm(Pentaho), das Eingabefeld ist ein Timestamp und wenn ich es entsprechend auswähle sieht es wie folgt aus:
          1. Juni 2010 08:00:00 MESZ

          Comment


          • #6
            Convert konvertiert von einem Datentyp in einen anderen. Du hast aber einen string und möchtest daraus wieder einen string machen. Das passt so direkt nicht.

            Wenn du die Formatierungsmöglichkeiten für Datetime benutzen willst musst du erst aus deinem string einen Datetime machen und dann wiederum aus dem Datetime einen string.

            Problem dein Datumsformat '1. Juni 2010 08:00:00 MESZ' ist kein (zumindest mir) bekanntes Format. Wie und ob du über Convert daraus einen Datetime machen kannst mußt du ausprobieren.

            Code:
            CONVERT(varchar(8), CONVERT(datetime, '1. Juni 2010 08:00:00', hierNochZuBestimmendesFormat), 14)

            Comment


            • #7
              das ist ja witzig. wenn ich den Datentyp als Timestamp defiiniere habe ich Dein Ergebnis.
              Also musst Du die Variable vorher noch in ein Datetime umwandeln, damit es funktioniert!

              Comment


              • #8
                soo hab mir mal vom programm direkt die parameter anzeigen lassen wie sie übergeben werden:
                Tue Jun 01 08:00:00 CEST 2010 = Date
                2010-06-14 08:00:00.0 = Timestamp

                folgendes geht leider auch nicht
                Code:
                CONVERT(varchar(8), CONVERT(datetime, '1. Juni 2010 08:00:00', 13), 14)
                @StefanBO: und wie mach ich das innerhalb der abfrage?!
                folgendes geht leider nicht
                Code:
                CONVERT(varchar(12), CAST('1. Juni 2010 08:00:00 MESZ' AS smalldatetime), 114)
                dort bekomm ich dann auch 08:00:00 heraus, wenn ich das jetzt ummünze auf
                CONVERT(varchar(8), CONVERT(datetime, ${DATUM_START_PARAM}, 113), 114)


                ----------------------------

                Edit:
                ok, also folgendes müsste ja eigentlich richtig sein:
                CONVERT(varchar(8), CONVERT(datetime, ${DATUM_START_PARAM}, 113), 114)
                dort bekomm ich dann auch 08:00:00 heraus, wenn ich das jetzt ummünze auf
                CONVERT(varchar(8), CONVERT(datetime, ${DATUM_START_PARAM}, 113), 114)
                dann ist leider die ausgabe nichts(im programm Pentaho) woran könnte das liegen?
                Zuletzt editiert von Colttt; 14.06.2010, 15:16.

                Comment


                • #9
                  ich habs jetzt mit nem Arbeitskollegen gelöst.. vielen dank für eure hilfe

                  Code:
                  DECLARE @START_PARAM DATETIME
                  
                  DECLARE @STOP_PARAM DATETIME
                  
                  SET @START_PARAM = CAST('2010-05-01 18:00:00.000' AS DATETIME)
                  
                  SET @STOP_PARAM = CAST('2010-05-31 18:30:00.000' AS DATETIME)
                  
                  
                  
                  
                  
                  SELECT Startzeit, @START_PARAM, @STOP_PARAM, DATEPART(hh,@START_PARAM), DATEPART(mi,@START_PARAM), DATEPART(ss,@START_PARAM) 
                  
                  FROM [ART].[dbo].[T_Prozess]
                  
                  where
                  
                  /*Stunden*/
                  
                  DATEPART(hh,Startzeit) 
                  
                  BETWEEN DATEPART(hh,@START_PARAM)
                  
                  AND DATEPART(hh,@STOP_PARAM) 
                  
                  /*Minuten*/
                  
                  AND
                  
                  DATEPART(mi,Startzeit) 
                  
                  BETWEEN DATEPART(mi,@START_PARAM)
                  
                  AND DATEPART(mi,@STOP_PARAM)
                  
                  /*Sekunden*/
                  
                  AND
                  
                  DATEPART(ss,Startzeit) 
                  
                  BETWEEN DATEPART(ss,@START_PARAM)
                  
                  AND DATEPART(ss,@STOP_PARAM)

                  Comment

                  Working...
                  X