-1

我需要你的帮助来找出并解决这个问题。

我有一个 DataReader,当使用函数 GetDateTime 来读取日期列时,我得到了最小值。我没有看到 GetDate 函数。我尝试将列的数据类型更改为日期时间,以便两者具有相同的数据类型,但结果相同。

这是表的定义:

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;

这是调试时显示的值:

dt = {1/1/0001 12:00:00 AM}

这是程序中的呈现值:

Date(1345089600000)

我完全困惑,我不知道我应该采取什么功能或行动来解决问题。如果您能提供帮助,我将不胜感激。谢谢!

4

1 回答 1

0

看起来您在表格的两个不同列中有日期和时间,试试这个

SELECT DocNumber, DocType, 
CAST(CAST(createDate as varchar(10)) + ' ' + CAST(hora as varchar(12)) as datetime) as fullDate
FROM Solped
于 2012-08-17T13:59:01.693 回答