sql >> Database teknologi >  >> Database Tools >> phpMyAdmin

Streng blev ikke genkendt som en gyldig DateTime phpMyAdmin

[Da det ikke er godt, hvis vi fortsætter i kommentarerne (kommentarerne bliver lange), vil jeg bare lægge det, jeg synes, som en løsning her]

For at formatere dateBuy til det format, du ønsker, skal du også sætte strengformatet i ToString()

Det vil sige i stedet for

dateBuy = (DateTime.ParseExact(dateBuy2, "yyyy-MM-dd", null)).ToString();

sætte

dateBuy = (DateTime.ParseExact(dateBuy2, "yyyy-MM-dd", null)).ToString("yyyy-MM-dd");

Ellers er det muligt for ToString() at producere noget som "2015-10-16 12:00:00 AM" i stedet for "2015-10-16"

Men da du bruger ParseExact , input til dateBuy2 skal også være i formatet "åååå-MM-dd", hvilket besejrer formålet. Du kan overveje at bruge DateTimePicker sådan at du kan styre inputformatet.

Alternativt kan du bruge DateTime.Parse eller TryParse (som foreslået af Martheen) i stedet noget som dette

try {
    DateTime dt = DateTime.Parse(txtDateBuy.Text);
    dateBuy = dt.ToString("yyyy-MM-dd");
} catch (Exception exc) {
    //wrong format, do something to tell the user
}

Hvis input skal være i TextBox du må hellere sætte try-catch for at forhindre dit programnedbrud for at tage forkert formateret input, hvis du bruger Parse .

Hvor som om du bruger TryParse du kan sætte det i if-else blokere sætning i stedet for

DateTime dt;
if (DateTime.TryParse(txtDateBuy.Text, CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal, out dt)) {
    //correct format, do something using dt
} else {
    //incorrect format, warns the user
}

For at få CultureInfo enum du skal tilføje reference til System.Globalization

[Redigeret efter forslag givet af hr. Soner Gonul]




  1. Eclipse-arbejdsområdet går ned ved opstart

  2. phpMyAdmin EKSTREMT langsom ved indlæsning af innoDB-databasens hovedside

  3. Hvordan fjerner jeg pma-tabeller fra mysql uden at påvirke andre tabeller

  4. Databaserelationer ved hjælp af phpmyAdmin (sammensatte nøgler)