首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Excel读取日期列

问从Excel读取日期列
EN

Stack Overflow用户
提问于 2015-08-07 12:14:46
回答 2查看 519关注 0票数 2

我正在从Excel文件中读取日期列

代码语言:javascript
复制
var dt = new DataTable();
string query = string.Format("SELECT  * FROM [{0}]", sheetName);

con1.Open();
OleDbDataAdapter adapter = new OleDbDataAdapter(query, con1);
adapter.Fill(dt);

using (SqlConnection con = new SqlConnection(consString))
{
    con.Open();

    for (int i = 1; i < dt.Rows.Count; i++)
    {
        for (int j = 1; j < dt.Columns.Count; j ++)
        {
            MessageBox.Show(dt.Rows[0][j].ToString());

            SqlCommand command = new SqlCommand("INSERT INTO [Budget Geant Preload]([CA TTC], [VAL MRG TTC], [CA HT], [VAL MRG HT], [Rayon], [Date], [Code Site], [Rayon Correspondance], TVA) VALUES(NULL, NULL, @ca, NULL, @rayon, @date, '2000', @rayon, null )", con);
            command.Parameters.AddWithValue("@date", dt.Rows[0][j]);
            command.Parameters.AddWithValue("@ca", dt.Rows[i][j]);
            command.Parameters.AddWithValue("@rayon", dt.Rows[i][0]);

            command.ExecuteNonQuery();
        }
    }
}    

数据示例

​

​

我需要得到01/01/2015,但它返回42217。如何解决这个问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-07 12:19:58

Datetime.fromOAdate()应该完成这项工作。

更新:

我只想扩大一下答案。

在Excel中,日期以浮点数形式存储,浮点数是自1/1/1900以来的日期数。它可能看起来是任意的,但它使加减时间(几乎)只是简单的加和减。实际上,在.net中,date time结构在内部是相同的,只是使用了ticks索引。

票数 4
EN

Stack Overflow用户

发布于 2015-08-07 12:21:22

检查OAdate

代码语言:javascript
复制
var time = DateTime.FromOADate(42217);

关于互操作日期的另一个参考

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31877488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档