将SQL Server的DateTime转换为MySQL

时间:2013-11-16 05:05:56

标签: c# mysql sql sql-server datetime

我正在开发VS2010 c#中的应用程序,以从SQLServer获取单行数据并将其插入MySQL。

我已经获取数据并存储在特定的字符串变量中。获取代码如下。

SqlCommand cmd = new SqlCommand("SELECT TOP (1) s_name, s_city, s_address, s_added_date, s_added_by FROM tblAQI ORDER BY s_added_date DESC", SSCon);
        SqlDataReader dr = cmd.ExecuteReader();
        while (dr.Read())
        {
            s_name = (dr["s_name"].ToString());
            s_city = (dr["s_city"].ToString());
            s_address = (dr["s_address"].ToString());
            s_added_date = (dr["s_added_date"].ToString());
            s_added_by = (dr["s_added_by"].ToString());
        }
        dr.Close();

现在我拥有了所有的值,但是在MySQL中插入datetime需要格式化yyyy-mm-dd hh:mm:ss格式的字符串。为了实现这一点,我有以下代码

        s_added_date = s_added_date.Substring(0, s_added_date.Length - 3);
        DateTime datevalue = DateTime.Parse(s_added_date);
        string formatForMySql = datevalue.ToString("yyyy-MM-DD HH:MM:SS");

当我得到输出时,我得到了2013-11-DD 12:11:SS 这里没有弄错。

请帮忙解决。

提前致谢。

3 个答案:

答案 0 :(得分:1)

我保存的格式为:yyyy-MM-dd HH:mm:ss会帮助您

尝试以下操作:

s_added_date = s_added_date.Substring(0, s_added_date.Length - 3);
        DateTime datevalue = DateTime.Parse(s_added_date);
        string formatForMySql = datevalue.ToString("yyyy-MM-dd HH:mm:ss");

答案 1 :(得分:1)

这:

string formatForMySql = datevalue.ToString("yyyy-MM-DD HH:MM:SS");

应该是:

string formatForMySql = datevalue.ToString("yyyy-MM-dd HH:mm:ss",CultureInfo.InvariantCulture);

说明:

1.没有DD格式=>使用dd:从01到31的月中的某一天。

2. MM时间格式是月份,从01到12,所以在时间格式中你应该使用mm

3. SSss

的秒数没有00格式使用59

请参阅此处查看DatFomatting

答案 2 :(得分:1)

您可以将日期格式更改为this格式。在您的情况下,这可能会有所帮助。

    // create date time 2008-03-09 16:05:07.123
DateTime dt = new DateTime(2008, 3, 9, 16, 5, 7, 123);

String.Format("{0:y yy yyy yyyy}", dt);  // "8 08 008 2008"   year
String.Format("{0:M MM MMM MMMM}", dt);  // "3 03 Mar March"  month
String.Format("{0:d dd ddd dddd}", dt);  // "9 09 Sun Sunday" day
String.Format("{0:h hh H HH}",     dt);  // "4 04 16 16"      hour 12/24
String.Format("{0:m mm}",          dt);  // "5 05"            minute
String.Format("{0:s ss}",          dt);  // "7 07"            second
String.Format("{0:f ff fff ffff}", dt);  // "1 12 123 1230"   sec.fraction
String.Format("{0:F FF FFF FFFF}", dt);  // "1 12 123 123"    without zeroes
String.Format("{0:t tt}",          dt);  // "P PM"            A.M. or P.M.
String.Format("{0:z zz zzz}",      dt);  // "-6 -06 -06:00"   time zone

在您的情况下:

string formatForMySql = datevalue.ToString("yyyy-MM-dd HH:mm:ss");