Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Uhrzeit aus einem Datetime Feld in ein anderes Datetime Feld ersetzen

Empfohlene Antworten

Veröffentlicht

Hallo Leute,

ich habe eine MS SQL Datendank, in dieser habe ich ein Feld (Typ Datetime) aus diesem möchte ich die Uhrzeit in ein anderes Feld, welches auch ein Datetime Feld ist ersetzen. Wie bekomme ich das am einfachsten in einer MS SQL umgesetzt?

Mit freundlichen Grüßen

IT-Biene

Hi Biensche,

versteh ich das richtig - du hast in einem Feld ein Date stehen - bspw.: "10.10.2010 22:24:00:000" (oder so ähnlich) und deine Frage ist, wie du die Uhrzeit aus dem Date extrahieren kannst und separat speichern kannst?

An sich ist das wahrscheinlich nicht sonderlich kompliziert - zunächst wärs aber hilfreich wie genau ein Eintrag in der Spalte aussieht, dann kann man den bspw. mit Substring zerlegen.

Viele Grüße

Daij

An sich ist das wahrscheinlich nicht sonderlich kompliziert - zunächst wärs aber hilfreich wie genau ein Eintrag in der Spalte aussieht, dann kann man den bspw. mit Substring zerlegen.

Sting operationen sind allgemein sehr inperformant in (t)sql (allgemein sollte man auf Skalare Funktionen verzichten soweit machbar, alles was mit BEGIN anfängt und mit END aufhört ist zu 95% schlecht für die performance). Ein Datetime in einen String zu converten, dann mit substring rumspielen.... ne bitte nicht. Einfach ne, einfach nicht machen.

2 Beispiele die typensicher und "besser" sind :


declare @a datetime =getdate()

declare @b time

declare @c datetime = convert(datetime, '2012-03-07 07:35:10')


set @b = convert(time, @a)

print @b

print convert(date, @c) + convert(time, @a)

Btw, wenns dir nur um den TIME teil des datetimes geht, du kannst auch ohne weiteres Felder in einer Tabelle anlegen, die vom Typ TIME sind. Damit hast du dann den richtigen Datentyp um das hinterher sauber auswerten zu können, OHNE in einem eventuell größeren Recordset erstmal alles zu konvertieren.

soviel zu Konvertierung. Ansonsten Trigger wurde schon genannt, einfach nen inner join mit der INSERTED trigger Tabelle auf deine Zieltabelle und fertich.

Gruß

Sven

Bearbeitet von streffin

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.