2017-01-01 10 views
-1

In meiner SQL-Datenbank gibt es eine Spalte dateofbirth, die das Geburtsdatum meiner Kunden mit diesem Formular enthält: 31/12/2016 Der Spaltentyp ist varchar (50).Suche nach Geburtsdatum

Ich brauche die Kunden zu wählen, die ‚Tag‘ und ‚Monat‘ ist wie datetime.now Hier ist mein Code:

select name,mobile from memberform where dateofbirth like '" + DateTime.Now.ToString("d/M") + "%' 

Der Code funktioniert. Aber heute in 1-1-2017 habe ich beobachtet, dass es auch Kunden auswählt, wo Geburtstag 1-10-xxxx ist. Warum geschieht das?

+1

Versuchen _with DateTime.Now.ToString ("d/M") + „/ % '_ – Steve

+3

Gesagt, planen Sie, diese Spalte so schnell wie möglich zu einer echten Datetime-Spalte zu ändern – Steve

+0

Warum, wenn Spaltentyp Datum ist, funktioniert es nicht? – drs

Antwort

3

Der Platzhalter % wird jedes Zeichen gerade Zahlen, versuchen, Ihren Code zu aktualisieren andere / nachdem es wie folgt hinzuzufügen:

'" + DateTime.Now.ToString("d/M") + "/%' 
+0

Vielen Dank es funktioniert, aber whywhen Spaltentyp ist Datum, es funktioniert nicht? – drs

+0

Da datetimes in DBs werden in einem anderen Format gespeichert als das, was Sie verwenden, dieses Format ist in der DB-Einstellung konfigurierbar –

+0

Datumsformat ist Beispiel e 2016-12-31. Recht? Wie wird sich das ändern? – drs