【问题标题】:Converting DateTime of SQLServer to MySQL将 SQL Server 的 DateTime 转换为 MySQL
【发布时间】:2013-11-29 15:55:05
【问题描述】:

我正在 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 中插入日期时间需要以 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 不明白这里出了什么问题。

请帮忙解决。

提前致谢。

【问题讨论】:

  • @f-r-i-e-n-d-s 是的,先生。完美的 ch ki..:) 谢谢。

标签: c# mysql sql sql-server datetime


【解决方案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");

【讨论】:

    【解决方案2】:

    我想将它保存为以下格式: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");
    

    【讨论】:

      【解决方案3】:

      这个:

      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.从0059的秒数没有SS格式使用ss

      查看这里DatFomatting

      【讨论】:

        猜你喜欢
        • 2019-09-02
        • 1970-01-01
        • 2017-02-07
        • 2016-11-30
        • 2011-06-24
        • 2020-07-31
        • 1970-01-01
        • 2023-04-02
        • 1970-01-01
        相关资源
        最近更新 更多