我使用以下选择查询从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()的方法,请告诉我
答案 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));