我用dataReader询问datetime值并获取最小值

时间:2012-08-17 13:47:25

标签: sql-server date datetime sqldatareader

我需要你的帮助来弄清楚并解决这个问题。

我有一个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)

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

1 个答案:

答案 0 :(得分:0)

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

SELECT DocNumber, DocType, 
CAST(CAST(createDate as varchar(10)) + ' ' + CAST(hora as varchar(12)) as datetime) as fullDate
FROM Solped