将 GetDateTime 转换为 Time only 格式 [duplicate]

Convert GetDateTime to Time only format [duplicate]

提问人:NateUser 提问时间:8/7/2023 更新时间:8/7/2023 访问量:30

问:

我正在创建一个事件 crud 应用程序,并尝试将事件的“时间”从我的数据库连接到我的代码。数据库格式的数据类型为 Time(7),asp.net 代码为 GetDateTime。我需要它采用 HH:mm 格式(而不是秒)。

我试过使用阅读器。GetDateTime,但它一直说指定的强制转换无效。下面是错误消息和代码。

System.InvalidCastException
  HResult=0x80004002
  Message=Specified cast is not valid.
  Source=<Cannot evaluate the exception source>
  StackTrace:
<Cannot evaluate the exception stack trace>



SqlDataReader reader = command.ExecuteReader();

                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        // create a new event and add to list.
                        EventModel events = new EventModel();
                        events.Id = reader.GetInt32(0);
                        events.StartTime = reader.GetDateTime(1);
                        returnList.Add(events);
                    }
                }
SQL asp.net .NET TimeSpan GetDate

评论

0赞 Panagiotis Kanavos 8/7/2023
time对应于 .NET Core 的 TimeOnly 类型或 .NET Framework 的 TimeSpan,而不是 .这与格式无关。DateTime 本身是一个二进制值,它没有格式。DateTime
0赞 Panagiotis Kanavos 8/7/2023
您是否尝试过使用 GetTimeSpan
0赞 NateUser 8/7/2023
在这种情况下,我将如何使用 GetTimeSpan?
0赞 Panagiotis Kanavos 8/7/2023
你是什么意思?这是 SqlDataReader 的方法,与 GetDateTime 相同。您甚至在问题中使用了该标签。你试过使用吗?timespanevents.StartTime = reader.GetTimeSpan(1);
0赞 NateUser 8/7/2023
我把它改成事件。StartTime = 读取器。GetTimeSpan(1);并给出以下错误消息:错误 CS0029 - 无法将类型“type”隐式转换为“type”

答: 暂无答案