我需要你的帮助来弄清楚并解决这个问题。
我有一个DataReader,当使用GetDateTime函数时,为了读取Date列,我得到了min值。我没有看到GetDate函数。我尝试将列的数据类型更改为Datetime,以便两者具有相同的数据类型,但结果相同。
这是表格的定义:
CREATE TABLE [dbo].[Solped](
[docNumber] [int] NOT NULL,
[docType] [nvarchar](255) NOT NULL,
[createDate] [date] NULL,
[hora] [time](2) NULL,
....
这是我阅读数据库的地方:
string sql = "SELECT * FROM Solped order by docNumber DESC";
System.Console.WriteLine(sql);
SqlCommand cmd = new SqlCommand(sql, con);
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
solped = new Solped();
solped.docNumber = reader.GetInt32(0);
solped.docType = reader.GetString(1);
DateTime dt = reader.GetDateTime(2);
solped.fecha = dt;
这是debbuging时显示的值:
dt = {1/1/0001 12:00:00 AM}
这是程序中显示的值:
Date(1345089600000)
我完全感到困惑,我不知道应该采取什么功能或行动来解决问题。如果你能提供帮助,我将非常感激。谢谢!
答案 0 :(得分:0)
看起来你的表中有两个不同列的日期和时间,试试这个
SELECT DocNumber, DocType,
CAST(CAST(createDate as varchar(10)) + ' ' + CAST(hora as varchar(12)) as datetime) as fullDate
FROM Solped