从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;
            }
        }
    }

从SQL读取到Visual Studios DateTime

由于您已经有一个DateTime,您只需要格式化它的字符串表示形式;

yourDateTime.ToString("M'/'dd'/'yyyy")

yourDateTime.ToString("M/dd/yyyy", CultureInfo.InvariantCulture)

我强烈怀疑您只使用DateTimeyourDateTime,并且可能在表示部分,这将调用默认情况下使用标准日期和时间格式DateTime.ToString()方法"G"该方法。

这个说明符返回ShortDatePattern和.LongTimePattern与分离的CurrentCulture空白区域相结合。

如果您只是尝试按 dd/MM/yyyy 显示

    var dateString = date.ToString("dd/MM/yyyy");