c# SqlCeDataReader getValue的日期返回不同格式的相同查询

本文关键字:格式 查询 返回 SqlCeDataReader getValue 日期 | 更新日期: 2023-09-27 18:03:53

我有以下代码

String sqlQuery = "SELECT * FROM table";
SqlCeDataReader reader = ConectorSQLCE.consultar(rutaArchivo, sqlQuery);
String value = "";
try
{
            while (reader.Read())
            {
                for (int i = 0; i < reader.FieldCount; i++)
                {
                    if (reader.GetValue(i) == DBNull.Value)
                        value += "*";
                    else
                    {
                        value += reader.GetValue(i).ToString();
                    }
                }
            }
}

reader.GetValue(i)datetime字段时,有时返回01/01/2014 0:00:00,有时返回01/01/2014 12:00:00 a.m.

为什么会发生这种情况?字符串值然后用于散列代码,所以我对同一行有不同的散列。

c# SqlCeDataReader getValue的日期返回不同格式的相同查询

不知道为什么会这样做,但如果时间字段总是相同的,为什么不将其转换为.ShortDateString(),那么您就不必担心不一致。如果您按名称调用所需的每个列并使用convert(varchar,dateField,101)

,您也可以在sql端转换它