Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从数据库的datetime字段中提取日期和月份部分_C#_Sql_Asp.net_Datetime - Fatal编程技术网

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

C# 如何从数据库的datetime字段中提取日期和月份部分,c#,sql,asp.net,datetime,C#,Sql,Asp.net,Datetime,我有一个名为submitted\u date的datetime列。它在数据库中的一个值是2017年12月5日上午11:09:50。现在我只想提取其中的日期和月份部分。如何以“May-12”等格式显示。 我的代码在这里 using (SqlConnection con = obj.getcon()) { con.Open(); string query = "SELECT submitted_date FROM sample"; usi

我有一个名为
submitted\u date
的datetime列。它在数据库中的一个值是2017年12月5日上午11:09:50。现在我只想提取其中的日期和月份部分。如何以“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();
    }

要获取按字母顺序排列的月份名称,可以使用
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

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

您可以通过以下操作完成此操作,但您需要知道哪个区域性,以便以正确的语言获取月份名称。我在本例中使用了美国文化:

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

这还假设您提交的日期列不为空。

您可以编写如下查询: 转换(varchar(20),提交日期,107)提交日期,返回日期为2016年12月12日。

尝试以下方法:

发件人:

string x_val = reader[0].ToString(); // 5/12/2017 11:09:50 AM
string x_val =DateTime.Parse(reader[0].ToString()).ToString("MMM-dd");
至:

string x_val = reader[0].ToString(); // 5/12/2017 11:09:50 AM
string x_val =DateTime.Parse(reader[0].ToString()).ToString("MMM-dd");