Datum in String konvertieren?

magic_halli

Erfahrenes Mitglied
Hi,

ich will in meiner Select-Anweisung in einer DropDownList 2 Uhrzeiten darstellen.
Es soll so aussehen,z.B.: 07:30 - 09:00
Wobei die Startzeit und die Anfangszeit in einer separaten Spalte in der DB stehen und nur optisch zusammengehörend in der DropDown dargestellt werden sollen.

Ich habe das so gemacht:
Code:
Dim sqlStr6 As String = "SELECT ZeitID, Anfangszeit +' '+ Endzeit AS Zeit FROM Zeiten"
...
Allerdings geht das nicht, weil die 2 Zeiten erst zu einem String konvertiert werden müssen. Ich kenne aber diese Konvertierungsfunktion nicht.
Kann mir bitte jemand helfen oder einen Tip geben, wie ich das sonst anstellen kann?

Danke, Rico
 
Hallo!

Benutze folgenden SQL-String:
Code:
SELECT ZeitID, Anfangszeit, Endzeit FROM Zeiten;
Anschließend liest Du die Anfangszeit als auch die Endzeit in einen seperaten String ein, musst halt vorher ggf. mit ToString() konvertieren. Abschließend verbindest Du die beiden Strings zu einem einzigen und fertig.
 
CAST

Der Befehl welcher du suchst dürfte cast sein
cast([wert] as [Datentyp])

Bei dir dürfte es dann etwa so aussehen

Dim sqlStr6 As String = "SELECT ZeitID, CAST(Anfangszeit AS CHAR) +' '+ CAST(Endzeit AS CHAR) AS Zeit FROM Zeiten"

Allerdings muss bei diesem Beispiel die Zeit schon in dem Format MM:ss vorliegen, wenn es Datetime zellen sind, so hängt er datum und Uhrzeit zusammen
 
Also ich bekomme das einfach nicht hin, die Anfangszeit und Endzeit jeweils in einen separaten String umzuwandeln!
Wie kann ich das anstellen, das ich jeweils die Anfangszeit und Endzeit aus der DB z.B. in einer Variable speichern und diese Variable in einen String umwandeln kann?

Die Variante mit dem CAST im Select-String hatte ich schon getestet, aber das geht nicht - da bekomme ich immer einen Fehler beim füllen des DataSet.
 
OK. Ich habe jetzt doch was gefunden... So gehts eigentlich ganz gut:
Code:
Dim sqlStr6 As String = "SELECT ZeitID, CStr(Anfangszeit) +' - '+ CStr(Endzeit) AS Zeit FROM Zeiten"

Nur noch eine Frage.
Kann ich gleich beim CStr(...) die letzten 3 Zeichen abschneiden? Sonst erscheinen nämlich noch die Nullen für die Sekunden bei der Ausgabe.

Danke
 
Original geschrieben von magic_halli
Also ich bekomme das einfach nicht hin, die Anfangszeit und Endzeit jeweils in einen separaten String umzuwandeln!
Wie kann ich das anstellen, das ich jeweils die Anfangszeit und Endzeit aus der DB z.B. in einer Variable speichern und diese Variable in einen String umwandeln kann?

Nun, ich würde Dir jetzt gerne den entsprechenden Source Code dafür posten, aber ich weiß leider nicht mit welcher Zugriffsart/-methode Du Dir die Daten aus der DB holen möchtest.

Aber ich gehe mal davon aus, dass Du Dir die Werte ja holen kannst und bloß die Konvertierung nicht klappt. Du musst also den Wert aus der Datenbank schon in irgendeiner Variable, DataSet etc. vorliegen haben, oder? Jedenfalls hat jedes Objekt in C#.NET eine Methode namens ToString(). Diese versucht den Inhalt irgendwie als String zu casten.

Ein kleines Beispiel:
Code:
// Integer (Zahl) erstellen als Test
int zahl = 321;

// Integer zu einem String wandeln
string zahlAlsString = zahl.ToString();

// Ausgabe
Response.Write(zahlAlsString);

So funktioniert das eigentlich immer. Du arbeitest zwar mit VB.NET, aber das Prinzip sollte wohl das selbige sein. :)
 
Zuletzt bearbeitet:
Ich habe jetzt alles hinbekommen ;)

Das Abschneiden mit left(String , 5)... Aber erstmal drauf kommen, wenn man nicht weiß wonach man suchen muss.

Danke für die Mühe :)
 
Zurück