2017-06-13 2 views
1

Ich erhalte die Fehler zu Typ Datum Datum konvertieren, wenn ich versuche, dies zu vergleichen:Vergleichen Code Datum ASP SQL-Datum NET

Seite laden:

Dim DataCorrenteLoad As String = DateTime.Now.ToString("dd-MM-yyyy") 
Label2.Text = DataCorrenteLoad 

und in SqlDataSource dem where Bedingung ist, dass die FinishDate > = Heute Datum

Wie kann ich diese Situation lösen? Sollte ich das Format TT-MM-JJJJ ändern? Oder was ?

Danke.

+0

Welche Zeile wirft den Fehler auf? Hast du diese Zeile in deine Frage aufgenommen? Überprüfen Sie [MCVE] (https://stackoverflow.com/help/mcve). – mason

+0

Vielleicht versuchen Sie, eine separate Variable für Date zu dimmen und dann in einer separaten Variablen und Zeile in eine Zeichenfolge zu konvertieren. –

+0

Datum ist ein Datum und sonst nichts! Sie sollten Datum, nicht Zeichenfolge verwenden! –

Antwort

2

Scheint, Sie wollen Daten vergleichen, aber Sie haben den Fokus auf String-Darstellung eines Datums gehalten. Das ist nicht das Gleiche!

sehen Beispiel nehmen:

Dim DatabaseDate As DateTime = DateTime.Today.AddDays(-5) 
Dim CurrentDate As DateTime = DateTime.Today 
'case 1: compare and display date in current culture - depending on regional settings 
Console.WriteLine("{0} {1} equal to {2}", DatabaseDate.ToString("d"), If(DatabaseDate=CurrentDate, "is", "is not") , CurrentDate.ToString("d")) 

'case 2: change string representation of date: 
'compare dates in France and German format 
Dim cu1 As Globalization.CultureInfo = New Globalization.CultureInfo("Fr-fr") 
Dim cu2 As Globalization.CultureInfo = New Globalization.CultureInfo("De-de") 
DatabaseDate = DateTime.Today 
Console.WriteLine("{0} {1} equal to {2}", DatabaseDate.ToString("d", cu1), If(DatabaseDate=CurrentDate, "is", "is not") , CurrentDate.ToString("d", cu2)) 

Above Code zurückkehrt:

'case 1 
2017-06-08 is not equal to 2017-06-13 
'case 2 
13/06/2017 is equal to 13.06.2017 

Fazit:
auf OS Je regionalen Einstellungen kann das Datumsformat unterscheiden, aber das Datum ist immer noch das Gleiche!

Für weitere Details, würde ich dringend, diese empfehlen zu lesen:
Standard Date and Time Format Strings
Custom Date and Time Format Strings
Parsing Date and Time Strings in .NET
Design and Implementation Guidelines for Web Clients
Formatting Date and Time for a Specific Culture

0

Label2.Text = System.DateTime.Now.ToString (“ DD/MM/JJJJ");

Verwenden Sie dies wird es funktionieren System.DateTime.Now wird die aktuelle Zeit anzeigen, wenn Sie zu stark ("TT-MM-JJJJ") es in Zeichenfolge zu konvertieren und setzen Sie es Format, das Sie unter doppelten Anführungszeichen setzen.

+0

Nur den Code hinzufügen wird nicht hilfreich sein, fügen Sie auch einige Erklärung hinzu – Spidey

+0

Falscher Ansatz! –