Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Datum wird in Tabelle falsch eingetragen

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von Davvud, 6 Mai 2014.

  1. Davvud

    Davvud Benutzer

    Hallo,

    ich arbeite an einer SQL Server 2008 R2 Datenbank.
    Gestern habe ich zum entsetzen festgestellt das die Jahreszahlen sich einfach ändern.
    Also wenn ich in der Spalte Datum das Jahr eingebe wird das Jahr automatisch in das Jahr 1905 umgestellt.
    Das verstehe ich nicht. Die Spalte hat ein Datetime als Datentyp.
    Ich gebe die Werte wie folgt ein (2014-02-03, jjjj,mm,dd ) ohne das ich allerdings die Uhrzeit eingebe.
    auch die Monate und Tage ändern sich habe ich festgestellt.

    Kann mir jemand dabei helfen? Das passiert erst seit kurzem vorher war das nicht so.
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Was gibst Du ein?
     
  3. ukulele

    ukulele Datenbank-Guru

    Vor allem wo gibst du es ein? In deiner Anwendung oder in der Datenbank?
     
  4. Davvud

    Davvud Benutzer

    Ich gebe es in der Datenbank ein, da die Anwendung noch nicht Reibungslos läuft.
    Jahr, Monat, Tag die Uhrzeit lasse ich weg. Ist es vielleicht deswegen?
     
  5. akretschmer

    akretschmer Datenbank-Guru

    Kann Du, Zitat: "Ich gebe die Werte wie folgt ein (2014-02-03, jjjj,mm,dd )", genauer erklären?
     
  6. Davvud

    Davvud Benutzer

    Ich Zeige es lieber.

    INSERT INTO [Quali-Matrix].[dbo].[Mitarbeiter_Unterweisungen]
    ([PersNR]
    ,[UW_ID]
    ,[UW_Datum]
    ,[Nächste_Unterw])
    VALUES
    ( 4051,
    3,
    2014-05-11,
    2016-05-11)
    GO

    So sieht die INSERT Abfrage z.B. aus.........

    Nun wird aus 2014, 1905 und auch die Tage und Monate werden anders dargestellt. Also ein komplettes falsches Datum

    (1905-06-22 00:00:00.000) Das steht nachher in den Spalten für Datum.
     
  7. akretschmer

    akretschmer Datenbank-Guru

    Quote das, sonst wird aus 2014-05-11 die Berechnung 2014 - 5 -11.
     
    ukulele gefällt das.
  8. Davvud

    Davvud Benutzer

    Tut mir leid aber ich verstehe deinen Beitrag nicht.
    Quote das? Hä?
    Und warum Berechnung?
     
  9. akretschmer

    akretschmer Datenbank-Guru


    Suchbild, finde den Unterschied:

    Code:
    test=# select '2014-05-06';
      ?column?
    ------------
     2014-05-06
    (1 row)
    
    test=*# select 2014-05-06;
     ?column?
    ----------
      2003
    (1 row)
    
     
  10. Davvud

    Davvud Benutzer

    Moment mal, wieso macht er das?
    Vorher habe ich mit Bulk insert Massenimport durchgeführt und hat es doch geklappt wieso jetzt nicht?
    Also muss ich Datum in Anführungszeichen setzen?


    Danke dann wäre das ja gelöst.
     
  11. akretschmer

    akretschmer Datenbank-Guru

    Weil er es nicht besser weiß?

    Was hat 'geklappt'? Daß er falsche Datumswerte nun hat?

    Möglicherweise.
     
  12. Davvud

    Davvud Benutzer

    Mit BULK INSERT kann man Massenimporte durchführen. Habe das von einer .txt Datei importiert und dabei wurden die Daten korrekt angezeigt.
     
  13. ukulele

    ukulele Datenbank-Guru

    Der BULK Import arbeitet in der Regel mit Spaltentrennzeichen wie ; oder Tabulator. Dadurch interpretiert er 2014 - 5 -11 vermutlich nicht als (berechnete) Zahl sondern immer als String. Er wird vermutlich auch einen Fehler werfen wenn er diesen Wert in eine Integer-Spalte schreiben soll.

    In einem normalen SQL-Insert können aber durchaus auch Berechnungen statt finden. Da sind Zahlen eben Zahlen und werden nicht als String behandelt.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden