我遇到了问题,我正在尝试从Sql数据库中读取,它名为Testing并包含一个名为TimeDate的表,在其中,它具有名为DoB(出生日期)的属性,其值为Date(不是DateTime)。在视觉工作室里面,我从数据库中读取并将Date返回到一个名为DoB的变量列表中,数据类型为DateTime(据我所知,没有“Date”数据类型)。但当我显示所有我想看的信息是月,日和年(1990年3月27日),但我实际看到的是这个3/27/1990 12:00:00 AM ...我不希望那个时间部分被显示,即使我使用.Date属性,它仍然显示时间部分,无论如何摆脱这个?
这是我用来读/写数据库并在控制台中显示信息的代码
static void Main(string[] args)
{
Console.WriteLine("What is the birthday you would like to input?(YYYY-MM-DD)");
DateTime newDate = Convert.ToDateTime(Console.ReadLine());
NewDate(newDate);
List<DateTime> dates = Read("FindDates", new SqlParameter[] { });
Console.WriteLine("\n");
foreach (DateTime date in dates)
{
Console.WriteLine(date);
}
Console.ReadKey();
}
private static string connectionString = @"Server = ONSHORE-PC\SQLEXPRESS;Database = Testing;Trusted_Connection = True;";
public static void NewDate(DateTime date)
{
try
{
SqlParameter[] parameters = new SqlParameter[] {
new SqlParameter("@TimeDate", date.Date)
};
Write("InputDate", parameters);
}
catch (Exception e)
{
Console.WriteLine("Error Writing to Database");
}
}
public static int Write(string statement, SqlParameter[] parameters)
{
using (SqlConnection con = new SqlConnection(connectionString))
{
using (SqlCommand command = new SqlCommand(statement, con))
{
command.Parameters.AddRange(parameters);
command.CommandType = System.Data.CommandType.StoredProcedure;
con.Open();
return Convert.ToInt32(command.ExecuteScalar());
}
}
}
private static List<DateTime> Read(string statement, SqlParameter[] parameters)
{
using (SqlConnection con = new SqlConnection(connectionString))
{
using (SqlCommand command = new SqlCommand(statement, con))
{
command.Parameters.AddRange(parameters);
command.CommandType = System.Data.CommandType.StoredProcedure;
con.Open();
SqlDataReader data = command.ExecuteReader();
List<DateTime> Dates = new List<DateTime>();
while (data.Read())
{
DateTime date = new DateTime();
date = Convert.ToDateTime(data["DoB"]);
Dates.Add(date);
}
return Dates;
}
}
}
答案 0 :(得分:0)
由于您已经有DateTime
,因此您只需要格式化它的字符串表示形式,如;
yourDateTime.ToString("M'/'dd'/'yyyy")
或
yourDateTime.ToString("M/dd/yyyy", CultureInfo.InvariantCulture)
我强烈怀疑您只使用DateTime
作为yourDateTime
,并且可能在代表部分中,默认情况下会调用DateTime.ToString()
method这使用"G"
standard date and time format。
此说明符返回ShortDatePattern
和。LongTimePattern
组合,并分隔CurrentCulture
的空格。
答案 1 :(得分:0)
如果您只是想通过dd / MM / yyyy显示
var dateString = date.ToString("dd/MM/yyyy");