选择查询以从Excel文件中获取任何格式的datetime值

时间:2012-05-15 12:32:37

标签: c# excel datetime

我使用以下选择查询从excel表中获取详细信息。

Select UserID,UserName,Country,State,City,DOB from [Sheet1$]

默认情况下,DOB(DateOfBirth)值是Excel文件中的mm / dd / yyyy格式。 如果我在excel中将DOB值格式mm / dd / yyyy更改为dd / mm / yyy或d-m-yyyy(除了deafult格式)。上面选择查询重新获取空DOB值。

如何编写select查询以获取任何格式的datetime值?

如果在SQL中有任何类似于Cast()或Convert()的方法,请告诉我

2 个答案:

答案 0 :(得分:0)

为了获得通用值 - 你应该设置一个通用值。

这是一个例子:

05/22/1978

还有更多的人。

但是这里有一个易于使用的代码:

if (value != null)
{
    if (value is double)
    {
        dt = DateTime.FromOADate((double)value);
    }
    else
    {
        DateTime.TryParse((string)value, out dt); //here you can try patterns of dd/mm/yyyy
    }
}

答案 1 :(得分:0)

试试这个。不要在演员阵容上浪费你的时间。只需获取所需的值,然后让String.Format以您需要的格式显示它。

查询正常的DoB值(如格式mm/dd/yyyy),以及显示它的位置,使用String.Format( {0:dd/MM/yyyy},DOB );

希望这有帮助

例如,在您的数据集中包含结果后,

string DateOfBirth = String.Format ( {0:dd/MM/yyyy},<yourDataSet>.Tables[0].Rows.Field<string>(column_number));