c# - 仅从 ToDateTime 返回日期
问题描述
注意,我对使用数据库还很陌生,所以这是一个初级问题。
我试图从 SQL 数据库中提取日期,但它返回日期和时间。在 SQL 中,我将类型设为日期,因此它不会记录任何时间,但它会继续返回 01/12/2002 12:00:00 之类的内容。我假设问题出在我的 C# 代码中,使用该ToDateTime()
方法,因为它也意味着返回时间。
我想要的只是以 MM/dd/yyyy 格式提取日期。
我已经查看了所有内容,并尝试了我在此处和其他网站上找到的无数建议,但仍然没有解决问题。我尝试过 TryParse、转换为字符串以及其他一些尝试解决问题的方法。
感谢您提供的任何帮助。非常感激!
while (reader.Read())
{
EventModel eventModel = new EventModel();
eventModel.EventType = reader["EventType"].ToString();
eventModel.Title = reader["Title"].ToString();
eventModel.Date = Convert.ToDateTime(reader["Date"]);
eventModel.Location = reader["Location"].ToString();
eventModel.Company = reader["Company"].ToString();
allEvents.AddLast(eventModel);
}
CREATE TABLE [dbo].[Events](
[Id] [int] IDENTITY(1,1) NOT NULL,
[EventType] [varchar](50) NOT NULL,
[Title] [varchar](50) NOT NULL,
[Date] [date] NOT NULL,
[Location] [varchar](50) NOT NULL,
[Company] [varchar](50) NULL
) ON [PRIMARY]
GO
解决方案
你说你要拉日期格式化。该DateTime
对象不包含任何格式。如果未提供时间,则DateTime
的时间组件将默认为午夜。您需要添加格式以仅显示日期组件。
你有几个选择。您可以直接从数据库中格式化日期,但您没有发布您的 SQL 查询。在不调整查询的情况下,您可以做一些简单的事情,例如将您的更改eventModel.Date
为 aString
而不是 aDateTime
然后:
eventModel.Date = DateTime.Parse(reader["Date"]).ToString("MM/dd/yyyy");
该ToString()
函数以您希望它显示的方式格式化输出。也许您尝试ToString()
在没有格式化参数的情况下调用。我将其更改为Convert.ToDateTime
,DateTime.Parse
因为Convert.ToDateTime
无论如何都会调用它。
附带说明一下,看一下用于处理数据库的 Entity Framework,它可以节省大量时间。
推荐阅读
- java - 是否可以在 Android 中添加由标准视图组成的自定义视图并在代码中使用它,但布局只知道标准视图?
- graphql - AttributeError:“产品”对象没有属性“节点”
- sql - 如何在一组集合中以特定顺序对 sql 中的行进行分组
- mysql - 根据字符或数字选择子字符串
- assembly - 如何用 movl 理解这个汇编代码?
- firebase - 有没有办法通过 REST API 连接 Firestore 数据库而不使用 Auth 2.0 身份验证
- c++ - unicode utf-16 代理对打印问题
- mongodb - MongoSQLd 未在 Windows 上启动
- oracle - 使用Oracle(SUBSTRING或REGEXP_SUBSTR)的字符串的子字符串当有多个Matches时
- python - Python从父目录外的包导入子包