2011-10-04 60 views
0

我试图通过ADODB/SQL查询CSV,并且结果需要按日期排序。挑战是日期是以dd-mon-yy格式。我试图使用CONVERTREPLACE但Excel 2003不断抛出自动化错误在我身上。我已经单独尝试了以下两项。在查询csv时通过sql替换/转换

随着CONVERT:

"SELECT CONVERT(datetime,[Business Date],106) from [filename.csv]" 

替换为:

"SELECT REPLACE([Business Date],'-',' ') from [filename.csv]" 

我没有在CSV控制人工手动修正的日期是不是一种选择。

回答

1

如何:

SELECT CDate(Right([Business Date],2) & "/" _ 
    & Mid([Business Date],4,3) & "/" _ 
    & Left([Business Date],2)) from [filename.csv] 

根据,当然,您的语言环境。我不相信转换和替换可用于ADO。

+0

您错过了CDATE的右括号。以下为我工作。谢谢。从[filename.csv] –

+0

选择CDate(左([Business Date],2)&“/”和Mid([Business Date],4,3)&“/”和Right([Business Date],2)) @ fasih.ahmed另一个想法,用'yy'格式,你可能遇到含糊不清的日期问题。如果可以的话,最好再增加几位数字。 – Fionnuala

+0

不错的建议,但这是大公司的事情之一,如果改变这一点至少需要一年时间。如果我正在控制数据,我会将其格式为yyyy.mm.dd,因为在这种情况下,基于词法顺序或unixtime进行排序会产生相同的结果。 –