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");