sql >> Databasteknik >  >> Database Tools >> phpMyAdmin

Strängen kändes inte igen som en giltig DateTime phpMyAdmin

[Eftersom det inte är bra om vi fortsätter i kommentarerna (kommentarerna blir långa) så lägger jag bara upp vad jag tycker som en lösning här]

För att formatera dateBuy till det format du vill ha, bör du också lägga strängformatet i ToString()

Det vill säga istället för

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

sätta

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

Annars är det möjligt för ToString() att producera något som "2015-10-16 12:00:00 AM" istället för "2015-10-16"

Men eftersom du använder ParseExact , indata för dateBuy2 måste också vara i formatet "åååå-MM-dd" vilket motverkar syftet. Du kan överväga att använda DateTimePicker så att du kan styra inmatningsformatet.

Alternativt kan du använda DateTime.Parse eller TryParse (som föreslagits av Martheen) istället, något sånt här

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

Om inmatning måste finnas i TextBox det är bättre att använda try-catch för att förhindra att ditt program kraschar för att ta felformaterad indata om du använder Parse .

Där som om du använder TryParse du kan lägga det i if-else blockera uttalande istället

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
}

För att få CultureInfo enum du måste lägga till referens till System.Globalization

[Redigerad efter förslag från Mr. Soner Gonul]




  1. Ett allvarligt JavaScript-fel har inträffat. Vill du skicka en felrapport? på phpmyadmin

  2. Hur krypterar man en specifik kolumn i en MySQL-tabell?

  3. httpclient (phpmyadmin) fungerar inte på Android 4.0+

  4. PhpMyAdmin | Allvarligt fel:Tillåten minnesstorlek på 134217728 byte är slut (försökte allokera xxxxxx byte) i okänt på rad 0