从SQL读取到Visual Studios DateTime
本文关键字:Studios DateTime Visual SQL 读取 | 更新日期: 2023-09-27 18:33:03
我遇到了问题,我正在尝试从SQL数据库中读取,它称为测试,并包含一个名为TimeDate的表,在其中,它具有名为DoB(出生日期)的属性,值为Date(不是DateTime)。在Visual Studios内部,我从数据库中读取,它将Date返回到一个名为DoB的变量列表中,数据类型为DateTime(据我所知,没有只有"Date"数据类型)。但是当我显示信息时,我想看到的只是月份、日期和年份 (3/27/1990),但我实际看到的是这个 3/27/1990 12:00:00 AM...我不希望显示该时间部分,即使我使用 .日期属性,它仍然显示时间部分,无论如何可以摆脱它吗?
这是我用来读/写数据库并在控制台中显示信息的代码
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;
}
}
}
由于您已经有一个DateTime
,您只需要格式化它的字符串表示形式;
yourDateTime.ToString("M'/'dd'/'yyyy")
或
yourDateTime.ToString("M/dd/yyyy", CultureInfo.InvariantCulture)
我强烈怀疑您只使用DateTime
的yourDateTime
,并且可能在表示部分,这将调用默认情况下使用标准日期和时间格式DateTime.ToString()
方法"G"
该方法。
这个说明符返回ShortDatePattern
和.LongTimePattern
与分离的CurrentCulture
空白区域相结合。
如果您只是尝试按 dd/MM/yyyy 显示
var dateString = date.ToString("dd/MM/yyyy");