Getting DateTime from MySQL table using C# and AllowZeroDatetime -
i connecting mysql c# using allowzerodatetime option , when query table, works part of way. date zeros time 12:00:00 am. how fix this? here connection string:
string connectioninfo = @"server=" + @server + @";userid=" + @username + @";password=" + @password + @";database=my_data;" + @"allowzerodatetime=true;";
and here code i'm using datetime entries:
private static void getselectgroups(mysqlconnection mysqlconn) { string selectcommand = "select user_date my_table"; // set table reader mysqlcommand sqlcmd = new mysqlcommand(selectcommand, mysqlconn); mysqldatareader dataread = sqlcmd.executereader(); while (dataread.read()) { console.writeline(dataread["user_date"]); } }
this printing out 0/0/0000 12:00:00 am. need print 0/0/0000 00:00:00.
since dataread["user_date"]
returns object
, console.writeline(overload)
implemented as;
if (value == null) { writeline(); } else { iformattable f = value iformattable; if (f != null) writeline(f.tostring(null, formatprovider)); else writeline(value.tostring()); }
since value not null
, datetime
implements iformattable
interface, line executed;
writeline(f.tostring(null, formatprovider));
and performs the "g"
standard format specifier of currentculture
combinations of shortdatepattern
, longtimepattern
properties.
for current culture, looks combinations performs d/m/yyyy hh:mm:ss tt
format.
for string representation want, either use custom date , time formats or can clone
currentculture
set it's longtimepattern
property hh:mm:ss
format need 00:00:00
representation , use culture.
console.writeline(((datetime)dataread["user_date"]).tostring("d/m/yyyy hh:mm:ss"));
or
var clone = (cultureinfo)cultureinfo.currentculture.clone(); clone.datetimeformat.longtimepattern = "hh:mm:ss"; while (dataread.read()) { console.writeline(((datetime)dataread["user_date"]).tostring(clone)); }
Comments
Post a Comment