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.

Empfohlene Antworten

Veröffentlicht

Hallo zusammen,

ich hab gegoogelt, die Hilfe benutzt, hier auf dem Board gesucht und bin mittlerweile der Meinung, dass mich der Server einfach nicht mag... :floet:

Folgendes Problem (SQL2008R2):

Ich habe ein NVARCHAR-Feld auf einer Datenbank, das so aufgebaut ist:

XXXXXX2012-03-09XXXXXXXXXXXX

Aus diesem Feld möchte ich nun das "Datum" in einer Anwendung darstellen, mit einer Deutschen Datumsformatierung, hier also: 09.03.2012. Hier meine kläglichen Versuche:

1.) SELECT CAST((SUBSTRING(<FIELDNAME>, 7, 10)) as date) as 'Geändert am'

from <TABLENAME>

2.) select CONVERT(date, (SUBSTRING(<FIELDNAME>, 7, 10)), 104)

from <TABLENAME>

Ich bekomme es aber einfach nicht hin, dass mir das Deutsche Datumsformat ausgegeben wird, und habe so ziemlich alles versucht, was ich im Internet und der Hilfe gefunden habe... Entweder gibt es einen Converting-Fehler (Msg. 241, Level 16), oder aber ich bekomme den Teil herausgeschnitten, nicht aber in das korrekte Format.

Sehe ich das richtig, dass ich mit dem "Date" im CONVERT das "Zielformat" setze, dann den Wert nenne und mit z.B. der "104" die Style (104 = Deutschland)?

Danke für Eure Hilfe,

Gruß

Sven

Hi,

du musst den String 2x typecasten, einmal den String zum date, dann das date wieder zum String in der richtigen formatierung.


SELECT 

CONVERT(varchar(12), 

            CONVERT(date, SUBSTRING(<FIELDNAME>, 7, 10), 120)

                ,104) 

from <TABLENAME>

das snipped von el_pollo funktioniert, weil durch die variablen zuweisung der typecast impliziert wird. Wobei es immer besser ist, das format anzugeben, anstatt sich auf die server und session language settings zu verlassen.

Das ganze funktioniert aber nur, wenn du weist wo im String dein Datum steht. Sobald das variabel wird, musst du dir eine Funktion schreiben, die das Datum erstmal findet. Das könntest du in SQL lösen (wär aber langsam) oder eine CLR dafür schreiben. In .Net wäre das per Regex in 5 Zeilen gegessen.

Gruß

Sven

Hallo zusammen,

zuerst mal vielen Dank für die Hilfe, es war die zweite Lösung, die ich gesucht hatte, da ich es möglichst simpel halten wollte. Es handelt sich hierbei um eine dynamische Abfrage in einer Anwendung, daher wollte ich eher ungern mit Variablen etc. arbeiten.

Aber wie gesagt, nochamls vielen Dank! :)

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.