staytuned
Goto Top

Daten in SQL-Feldtyp TimeStamp in Datetime umwandeln

System: SQL Server 2005

Hallo,

unser ERP-Anbieter hält es leider nicht für notwendig in den Verkaufsköpfen in die Datetime-Felder richtig zu füllen. Aus mir nicht begreiflichen Gründen werden nur Datumswerte aber keine Zeitwerte abgelegt.
Aus diesem Grund ist der Zeitwert immer 0. Für eine detailierte Auftragsauswertung natürlich suboptimal.
Jetzt dachte ich mir dass ich evtl. den Timestamp in der jeweiligen Zeile verwenden könnte. der Feldtyp ist "Timestamp", also eine Binäre Systemangabe.
Ich habe viele unterschiedliche Meinungen gelesen. Manche sagen das geht nicht, manche sagen es geht.

Hat jemand von euch eine Idee wie ich mir diese Angabe zu nutze machen kann? Leider bekomme ich bei der convertierung via cast oder convert immer einen Überlauf.

Gibt es evtl. eine spezielle Funktion hierfür?

LG u. Danke!

Content-ID: 161185

Url: https://administrator.de/contentid/161185

Ausgedruckt am: 25.11.2024 um 13:11 Uhr

wiesi200
wiesi200 21.02.2011 um 08:59:07 Uhr
Goto Top
Hallo,

also meines Wissens nach geht es nicht.

Und so ungewöhnlich finde ich das auch nicht das nur ein Datumswert drinnen steht. Ich habe bis jetzt mit 5 Systemen gearbeitet. Teilweise auch sehr bekannte und da war es überall so.
Logan000
Logan000 21.02.2011 um 09:06:41 Uhr
Goto Top
Moin Moin

Also Laut SQL Doku ist das duchaus möglich.
Schaust Du hier: http://msdn.microsoft.com/de-de/library/ms187928%28v=sql.90%29.aspx

Und ein knakiges
SELECT Cast(TimestampFeld as datetime) FROM MeineTabelle
liefert mir ein 1A Datetime.

In welchen Kompatibilitätsgrad laufen eure DBs?

Gruß L.
StayTuned
StayTuned 21.02.2011 um 09:10:20 Uhr
Goto Top
Hallo Wiesi,

danke für die schnelle Antwort.

Es geht nicht darum ob das ungewöhnlich ist. Es geht darum, dass durch Faulheit oder Ignoranz des Systemhauses dem Kunden eine wichtige Information durch die Lappen geht.
Wo ist denn der Aufwand den Zeitwert mit zu schreiben wenn ich das Feld sowieso im Zugriff habe? Jetzt kann ich mich hin setzen und einen Trigger schreiben nur damit ich eine Info erhalten die im Standard ein 1Zeiler wäre.
Es ist sehr ärgerlich wenn Kunden immer der hoch bezahlten "Leistung" hinterher laufen müssen! Es handelt sich hierbei um Navision mit 100 CC Usern und nicht um ein 200 Euro KHK oder so.

Trotzdem danke! LG ;o)
StayTuned
StayTuned 21.02.2011 um 09:17:43 Uhr
Goto Top
Hallo Logan,

der Kompgrad ist 90 ( 2005). Die Vorgaben kommen vom Systemhaus.

Folgende Fehlermeldung erhalten ich:
Meldung 8115, Ebene 16, Status 2, Zeile 1
Arithmetischer Überlauffehler beim Konvertieren von expression in den datetime-Datentyp.

Jetzt bin ich wieder am Anfang ^^. Einer sagt das geht nicht da es sich nicht um eine Zeit/Datums Information handelt. Du sagst es geht.

Ich bekomme hierzu jedenfalls einen Fehler. danke dir.
wiesi200
wiesi200 21.02.2011 um 09:18:13 Uhr
Goto Top
Hallo,

ich hab auch Navision am laufen.
Es ist einfach so im Standard nicht, wenn man sowas will muss man das dem Systemhaus mitteilen dafür wird bei der Einführung ein Workshop gemacht.
Ich würde da einfach ein neues Feld (DateTime) noch hinzufügen in NAV und das z.b. beim Druck automatisch füllen lassen. Das sind 2 Zeilen Code im Beleg und 5 min Arbeit.
Wo ist das große Problem.

Edit: Sorry währen sogar 3 Zeilen.
StayTuned
StayTuned 21.02.2011 um 09:20:37 Uhr
Goto Top
dumme Frage,

kann die Fehlermeldung darin begründet sein dass das unser Anbieter das Feld auch "Timestamp" genannt hat? Da scheint mir nicht sehr hilfreich zu sein.
StayTuned
StayTuned 21.02.2011 um 09:26:40 Uhr
Goto Top
Das Problem ist: Ich benötige JETZT diese Zahlen und bemerke JETZT dass diese Infos gar nicht geschrieben worden sind. Klar kann ich JETZT reagieren aber JETZT ist es "zu spät".
Ihr habt also in eurem Workshop jedes DB-Feld besprochen?! Respekt!
wiesi200
wiesi200 21.02.2011 um 09:33:17 Uhr
Goto Top
Nö, aber wenn ich auf etwas Wert lege dann sollte ich mir im klaren darüber sein und darauf achten.
Zudem habe ich mir in der Einführungsphase die wichtigsten Tabellen angesehen und sowas war mir auf jeden Fall vor dem Echtstart bewust.

Auf jeden Fall kann dein Systemhaus am wenigsten dafür.
Es ist von MS so ausgelegt das es nur ein Date Feld ist und das zu ändern währe ein riesiger Aufwand und ehrlich sollte man sowas auch nicht ändern da man sonst Updateprobleme kriegt.
Hier muss wirklich ein neues Feld rein. Zudem wenn du das original Feld mit den Zeitwerten auf Datenbankebene füllst wirst du vermutlich sehr schnell Probleme haben denn dann kannst du keinen Verkaufskopf öffnen.
StayTuned
StayTuned 21.02.2011 um 12:58:54 Uhr
Goto Top
sorry wiesi aber hast du sonst nichts zu tun als hier eine grundsatzdiskussion anzufangen?

Es gibt sogar 2 Datetime-Felder im Verkaufskopf, die aus der Partnerschicht sind die ebenfalls nicht gefüllt sind. Punkt Ende.
wiesi200
wiesi200 21.02.2011 um 13:08:06 Uhr
Goto Top
Schaust du da über den Navision Objektdesigner oder über den SQL Mangager?
StayTuned
StayTuned 21.02.2011 um 13:20:34 Uhr
Goto Top
Management Studio 2008 R2 (und das es mindestens 30 Zeichen sein müssen schreibe ich noch etwas weiter ^^)
StayTuned
StayTuned 21.02.2011 um 13:25:06 Uhr
Goto Top
hat sich damit dann wohl erledigt. Ich verstehe nur nicht warum angeblich manche Leute mit einem Cast oder Convert Ergebnisse erzielen.

http://books.google.de/books?id=qf7Wuhnq3ZQC&pg=PA444&dq=sql+se ...
wiesi200
wiesi200 21.02.2011 um 13:34:03 Uhr
Goto Top
Schau's dir mal über den Nav Objektdesigner an. Ich bin mir nicht 100% sicher aber wenn du da drinnen ein Feld als Date Feld definierst ist's für den SQL Server glaub ich trotzdem ein DateTime Feld. Und wie gesagt wenn da irgendwie auch noch Zeitdaten rein kömmen kanns du die Tabelle vergessen. Ich hatte da mal ein Problem mit einer Schnittstelle.
StayTuned
StayTuned 21.02.2011 um 13:56:56 Uhr
Goto Top
Zitat von @wiesi200:
Und wie gesagt wenn da irgendwie auch
noch Zeitdaten rein kömmen kanns du die Tabelle vergessen.

Wie meinst du das ich "kann die Tabelle vergessen"? Den Datensatz haben die Kollegen doch sowieso im Zugriff.

Ja, es ist immer ein Datetime denn Date und Time steht erst am SQL Server 2008 zur Verfügung.

Hier habe ich glaub ich auch die Erklärung für das ganze Missverständnis.

http://books.google.de/books?id=ChpOy-RHeAsC&pg=PA307&dq=sql+se ...

LG