radiomagazin 0 Geschrieben 28. Juni 2020 Melden Teilen Geschrieben 28. Juni 2020 Hallo Zusammen, ich habe die folgende Beispieltabelle. Kann mir jemand sagen wie ich das Datum des Timespan ermitteln kann ?? MFG Ingo Feld [Datum] Feld [Erinnerung vorher] 2020-06-29 01:07:51 NULL 2020-06-29 01:07:51 NULL 2020-06-29 01:07:51 NULL 2020-06-29 01:07:51 NULL 2020-06-29 01:07:51 -36000000000 2020-06-29 01:07:51 NULL 2020-06-29 01:07:51 -36000000000 2020-06-29 01:07:51 NULL 2020-06-29 01:07:51 NULL 2020-06-29 01:07:51 NULL 2020-06-29 01:07:51 -36000000000 2020-06-29 01:07:51 -72000000000 2020-06-29 01:07:51 NULL 2020-06-29 01:07:51 NULL 2020-06-29 01:07:51 324000000000 Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 29. Juni 2020 Melden Teilen Geschrieben 29. Juni 2020 Moin, die Frage verstehe ich nicht recht. Geht es darum, aus "2020-06-29 01:07:51" nur das Tagesdatum zu extrahieren? Dafür eignet sich die FORMAT-Funktion. [How to Format the Date & Time in SQL Server | Database.Guide]https://database.guide/how-to-format-the-date-time-in-sql-server/ [FORMAT (Transact-SQL) - SQL Server | Microsoft Docs]https://docs.microsoft.com/en-us/sql/t-sql/functions/format-transact-sql?view=sql-server-ver15 Gruß, Nils Zitieren Link zu diesem Kommentar
radiomagazin 0 Geschrieben 29. Juni 2020 Autor Melden Teilen Geschrieben 29. Juni 2020 Das erste Datum habe ich nur als Beispiel genommen. In dem Feld namens Datum stehen richtige Datumsangaben eines Termines. In einem 2. Feld Erinnerung vorher steht eine Zahl wie oben in der Tabelle zu sehen ist. Ich möchte aber anstelle dieser Zahl das Datum / Uhrzeit der Erinnerung haben. Daher brauche ich eine Formel, die mir z.B. in der Zeile 5 von einem Datum das z.B. 2020-06-29 sein kann die Erinnerung von -36000000000 abzieht und ich mittels Forme dann im 3. Feld (z.B. Erinnerung:" den Wert 27.06.2020 stehen habe statt der -xxxxxxxx Jetzt klarer geworden ? Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 29. Juni 2020 Melden Teilen Geschrieben 29. Juni 2020 (bearbeitet) Moin, nein, das verstehe ich nicht. Wie zieht man eine Erinnerung von einer großen negativen Zahl ab? Du müsstest das schon etwas vollständiger erklären. Nur mal so ins Blaue geschossen: [DATEADD (Transact-SQL) - SQL Server | Microsoft Docs]https://docs.microsoft.com/en-us/sql/t-sql/functions/dateadd-transact-sql?view=sql-server-ver15 Aber trotzdem wäre es nett, wenn du dich um Verständlichkeit deiner Fragen bemühst. Gruß, Nils bearbeitet 29. Juni 2020 von NilsK Zitieren Link zu diesem Kommentar
radiomagazin 0 Geschrieben 29. Juni 2020 Autor Melden Teilen Geschrieben 29. Juni 2020 OK Mal Ganz Einfach: Feld 1 = 2020-06-29 08:00:00.000 -> steht für den Termin am 29.06.2020 um 08:00 Uhr !!! Feld 2 = -36000000000 -> Steht so in der Tabelle für die Erinnerung 1 Stunde vorher -72000000000 -> Steht für 2 Stunden vorher Das Feld 3 das ich gerne berechnet hätte würde somit 29.06.2020 um 07:00 Uhr ergeben !!! Beispiel aus der Software: und aus SQL Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 29. Juni 2020 Melden Teilen Geschrieben 29. Juni 2020 Moin, ah, siehste. Geht doch. Nächstes Mal liefere die Informationen doch gleich. Dann kannst du dir auch die Ausrufezeichen sparen. Für dein Vorhaben sollte DATEADD() passen, siehe Link oben. Sofern ich es richtig überschlage und es sich bei "timespan" um Nanosekunden handelt, kannst du das direkt als Parameter angeben, sonst musst du den Wert eben noch umrechnen. Gruß, Nils 1 Zitieren Link zu diesem Kommentar
radiomagazin 0 Geschrieben 29. Juni 2020 Autor Melden Teilen Geschrieben 29. Juni 2020 Super Idee, aber es funktioniert nicht. Kann ja jeder selber mal ausprobieren: SELECT DATEADD(NS,-36000000000, CONVERT(nvarchar, GETDATE(), 20)) wobei CONVERT(nvarchar, GETDATE(), 20) ja für das jetzige Datum und Zeit steht. ---> Arithmetischer Überlauffehler beim Konvertieren von expression in den int-Datentyp. Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 29. Juni 2020 Melden Teilen Geschrieben 29. Juni 2020 (bearbeitet) Nutzt du Nanosekunden? SELECT DATEADD(MS,-36000000000, CONVERT(nvarchar, GETDATE(), 20)) Oder versuche mal: SELECT DATEADD(MS,-36000000000, GETDATE()) EDIT: Oder millisecond statt MS. Die ganzen Beispiele sind mit den ausgeschriebenen texten: https://docs.microsoft.com/en-us/sql/t-sql/functions/dateadd-transact-sql?view=sql-server-ver15 bearbeitet 29. Juni 2020 von Dukel Zitieren Link zu diesem Kommentar
radiomagazin 0 Geschrieben 29. Juni 2020 Autor Melden Teilen Geschrieben 29. Juni 2020 ok ich habe es gelöst: SELECT DATEADD(SECOND, -36000000000/10000000, CAST('2020-06-29' as Datetime2)) Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.