Announcement

Collapse
No announcement yet.

Float-Spalte beim Export auf 2 Stellen runden

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

  • #16
    Float-Spalte beim Export auf 2 Stellen runden
    Was hat,diese Frage mit der Überschrift zu tun?
    Christian

    Comment


    • #17
      Originally posted by Christian Marquardt View Post
      Was hat,diese Frage mit der Übrtschrift zu tun?
      Stimmt, sorry. die ursprüngliche fragestellung bzgl. float auf zwei nachkommastellen kürzen - ist beantwortet.

      Comment


      • #18
        Hallo Barbara,

        ich würde den Datentypen nicht unbedingt auf nvarchar ändern, das endet nur damit, das später die Daten in den unterschiedlichsten Formaten drin steht.

        Besser im Client oder in deinem Fall beim SELECT konvertieren (mit Format 120)

        SELECT CONVERT(varchar(10), GetDate(), 120)
        Olaf Helper

        <Blog> <Xing>
        * cogito ergo sum * errare humanum est * quote erat demonstrandum *
        Wenn ich denke, ist das ein Fehler und das beweise ich täglich

        Comment


        • #19
          Hallo Olaf

          Danke für deine Antwort.
          Das Problem ist wirklich, dass ich diese Abfrage in einer Schleife benutze, die normalerweise für varchars benutzt wird (die Inputs werden dynamisch generiert aufgrund der Benutzereinstellungen, das Datumsfeld heisst nicht immer gleich).
          Im Prinzip besteht nun die Möglichkeit die entsprechende Spalte jeweils auf ihren Datentyp zu überprüfen und falls es sich um einen Datumstyp handelt eine leicht veränderte (convert) abfrage zu benutzen.
          Der Nachteil dabei ist die Geschwindigkeit - das Javaprogramm muss also jedes Mal noch den Datentyp mit abfragen, prüfen und ggf. mutierte Abfrage ausführen. Dieser Punkt macht sich insbesondere bemerkbar, da das Tool beim Laden immer viele DropDownFelder aktualisieren muss und dies die Performance merklich beeinträchtigt.

          Deshalb habe ich mich im Moment für die Umwandlung in einen String (beim einmaligen Preprocessing) entschieden. Wenn ich mal etwas mehr Zeit habe, gehe ich da nochmals über die Bücher.

          Mal abgesehen von der Formatierung des zu erstellenden Excels (was technisch über den SQL Server nicht möglich ist) habe ich alle eingangs beschriebenen Probleme dank deiner Hilfe lösen können. Problem 4 mit der Spaltenbeschränkung in Excel habe ich nun auch Clientseitig gelöst - das Javatool berücksichtigt diesen Fall jetzt zusätzlich.
          Danke Dir, Olaf.

          Barbara

          Comment


          • #20
            Das Umsetzen auf varchar ist natürlich möglich.
            Nach dem Alter einfach folgendes Statement absetzen:

            [highlight=SQL]-- Ins gewünschte Format YYYY-MM-DD umwandeln
            UPDATE _TestDate
            SET DatumAlsText = CONVERT(nvarchar(10), CONVERT(datetime, DatumAlsText, 0), 120)
            WHERE DatumAlsText <> CONVERT(nvarchar(10), CONVERT(datetime, DatumAlsText, 0), 120)
            GO

            -- Verhinden, das "Nicht-Datumswerte" ins Textfeld geschrieben werden
            ALTER TABLE dbo._TestDate ADD CONSTRAINT
            CK_DatumAlsText CHECK (Isdate(DatumAlsText) <> 0)
            GO
            [/highlight]
            Durch die WHERE Klausel kannst Du es öfters anwenden, upgedatet werden nur Datensätze, wo es noch nicht passt.
            Den CONSTRAINT kannst Du auch weglassen, es soll verhindern, das fehlerhafte Datumswerte bei neuen Datensätze in das Feld geschrieben werden.

            Für Deinen Anwendungsfall wäre es sinniger mit VIEWs zu arbeiten.
            In den Tabellen legst Du die Daten den Typen entsprechend ab und im VIEW nimmst Du dann die Formatierung für die Ausgabe/Excel-Export vor. Ändert sich mal was am Format, musst Du nur das View ändern und nicht Deine ganzen Daten.
            Olaf Helper

            <Blog> <Xing>
            * cogito ergo sum * errare humanum est * quote erat demonstrandum *
            Wenn ich denke, ist das ein Fehler und das beweise ich täglich

            Comment

            Working...
            X