radiomagazin 0 Geschrieben 28. Juni 2020 Melden 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
NilsK 3.046 Geschrieben 29. Juni 2020 Melden 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
radiomagazin 0 Geschrieben 29. Juni 2020 Autor Melden 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 ?
NilsK 3.046 Geschrieben 29. Juni 2020 Melden 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
radiomagazin 0 Geschrieben 29. Juni 2020 Autor Melden 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
NilsK 3.046 Geschrieben 29. Juni 2020 Melden 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
radiomagazin 0 Geschrieben 29. Juni 2020 Autor Melden 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.
Dukel 468 Geschrieben 29. Juni 2020 Melden 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
radiomagazin 0 Geschrieben 29. Juni 2020 Autor Melden Geschrieben 29. Juni 2020 ok ich habe es gelöst: SELECT DATEADD(SECOND, -36000000000/10000000, CAST('2020-06-29' as Datetime2))
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden