如何从数据库中的datetime字段中提取日期和月份部分

时间:2017-05-12 06:43:25

标签: c# sql asp.net datetime

我有一个名为submitted_date的日期时间列。其中一个在数据库中的价值是 5/12/2017 11:09:50 AM 。现在我想只提取它的日期和月份部分。如何以“May-12”的格式显示它。 我的代码在这里,

   using (SqlConnection con = obj.getcon())
    {
        con.Open();
        string query = "SELECT submitted_date FROM sample";
        using (SqlCommand command = new SqlCommand(query, con))
        {
            using (SqlDataReader reader = command.ExecuteReader())
            {
                while (reader.Read())
                {
                    string x_val = reader[0].ToString(); // 5/12/2017 11:09:50 AM
                }
            }
        }
        con.Close();
    }

5 个答案:

答案 0 :(得分:1)

要获取字母月份名称,您可以使用MMM。这是代码:

var result = DateTime.Parse(reader[0].ToString())  
                     .ToString("MMMM-dd", CultureInfo.InvariantCulture);
//if reader[0].ToString(): 5/12/2017 11:09:50 AM then
//result: May-12

答案 1 :(得分:0)

直接在SQL上使用DATEPART,您已完成。

答案 2 :(得分:0)

您可以使用以下方法执行此操作,但您需要知道哪种文化,以便以正确的语言获取月份名称。我在这个例子中使用了美国文化:

string s = reader.GetDateTime(0).ToString("MMMM-dd", CultureInfo.CreateSpecificCulture("en-US"));

这也假设您的submitted_date列是非NULL。

答案 3 :(得分:0)

您可以编写如下查询: 转换(varchar(20),submitted_date,107)submitted_date,它将于2016年12月12日返回日期。

答案 4 :(得分:0)

试试这个:

发件人:

string x_val = reader[0].ToString(); // 5/12/2017 11:09:50 AM

string x_val =DateTime.Parse(reader[0].ToString()).ToString("MMM-dd");