sql >> Databasteknik >  >> RDS >> Mysql

Det går inte att konvertera MySQL.DateTime till System.DateTime med 0000-00-00 00:00:00 värden

Tittar på denna dokumentation , det verkar som att du anger två motstridiga alternativ (AllowZeroDateTime=true och ConvertZeroDateTime=true ) och en som inte verkar vara listad (ZeroDateTimeBehavior=ConvertToNull ).

Jag föreslår att om du inte har faktiska data som är DateTime.MinValue som du inte vill blanda ihop med "noll"-värdet, du bara ange ConvertZeroDateTime=true och upptäck om resultatet är DateTime.MinValue . Du bör definitivt inte anrop reader.GetDateTime() , konvertera sedan resultatet till en sträng och sedan tillbaka till en DateTime - du bör undvika strängkonverteringar så långt du kan, eftersom de kan förstöra saker för dig ganska lätt.

Det är inte riktigt klart vilket strängvärde du vill ha för dessa "noll"-värden, men du bör kunna använda specialfall för dem med DateTime.MinValue ganska lätt. Personligen skulle jag faktiskt försöka behålla data i sin "inhemska" form så mycket som möjligt istället för att konvertera allt till strängar, men det är en annan kamp.




  1. Använder Laravels frågebyggarmetod whereIn() med underfråga

  2. Välj rad med senaste datum per användare

  3. Anpassa kortkommandon i MySql Workbench

  4. RADIANS() Exempel i SQL Server