値を mysql から文字列として取得しないでください。なんで?日付を追加するなど、その値に対して操作を行う必要がある場合は、DateTime
再度解析する必要があるためです。文字列の解析は遅くなる可能性があり、日付に関しては、mm/dd/yyyy および dd/mm/yyyy 形式の誤解などのエラーが発生しやすくなります。
あなたが抱えている問題は、.NET には型だけがないということですDate
。型しかありませんDateTime
。そのため、MySQLDATE
タイプをロードするDateTime
と、時間部分が真夜中に設定された が取得されます。
結果の出力方法を除いて、それには直接的な問題はありません。パラメータなしで呼び出す.ToString()
か、暗黙的に文字列として使用すると、完全な日付と時刻の結果が得られます。必要なフォーマットを示すパラメータを指定するだけです。
パラメータを指定しないと、General"G"
形式が取得されます。これについては、こちらのドキュメントで説明されています。
言い換えると:
yourDateTime.ToString() == yourDateTime.ToString("G")
利用可能な他のすべての形式については、こちらとこちらをご覧ください。
特に、日付だけが必要な場合は、おそらく次のようにする必要があります。
yourDateTime.ToString("d")
あなたのコメントに基づいて、代わりにこれを行う必要があります:
MySQL クエリ:
SELECT Gbstartdate FROM TblGbDef
C#:
DateTime gb_start_date = (DateTime) datareader[0];