sql >> Databáze >  >> RDS >> Mysql

Nelze převést MySQL.DateTime na System.DateTime s hodnotami 0000-00-00 00:00:00

Podívejte se na tuto dokumentaci , vypadá to, že zadáváte dvě protichůdné možnosti (AllowZeroDateTime=true a ConvertZeroDateTime=true ) a jeden, který zřejmě není uveden (ZeroDateTimeBehavior=ConvertToNull ).

Doporučuji, pokud nemáte skutečná data, která jsou DateTime.MinValue kterou si nechcete splést s "nulovou" hodnotou, jen zadejte ConvertZeroDateTime=true a zjistit, zda je výsledek DateTime.MinValue . Rozhodně neměli volání reader.GetDateTime() , poté převeďte výsledek na řetězec a poté zpět na DateTime - měli byste se vyhýbat převodům řetězců, jak jen můžete, protože vám to mohou docela snadno zkazit.

Není ve skutečnosti jasné, jakou hodnotu řetězce chcete pro tyto „nulové“ hodnoty, ale měli byste být schopni je ozvláštnit pomocí DateTime.MinValue poměrně snadno. Osobně bych se ve skutečnosti snažil zachovat data v jejich "nativní" podobě co nejvíce, než abych vše převáděl na řetězce, ale to je jiný boj.




  1. Indexování databáze v kostce s porovnáním B+strom a hash

  2. MySql Query:Vyberte první 3 řádky z tabulky pro každou kategorii

  3. sql ORDER BY více hodnot v konkrétním pořadí?

  4. PHP PDO:jak opětovná příprava příkazu ovlivní výkon