【问题标题】:Replace/Convert via sql while querying csv查询 csv 时通过 sql 替换/转换
【发布时间】:2011-11-30 13:01:35
【问题描述】:

我正在尝试通过 ADODB/SQL 查询 CSV,结果需要按日期排序。挑战在于日期采用 dd-mon-yy 格式。我尝试使用 CONVERTREPLACE 但 Excel 2003 不断向我抛出自动化错误。我已经分别尝试了以下两种方法。

使用转换:

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

用替换:

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

我无法控制 CSV,因此无法手动更正日期。

【问题讨论】:

    标签: sql excel csv replace adodb


    【解决方案1】:

    怎么样:

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

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

    【讨论】:

    • 您缺少 CDATE 的右括号。以下对我有用。谢谢。 SELECT CDate(Left([Business Date],2) & "/" & Mid([Business Date],4,3) & "/" & Right([Business Date],2)) from [filename.csv]
    • @fasih.ahmed 另一个想法,使用yy 格式,您可能会遇到日期不明确的问题。如果可以的话,最好在年份中再添加几个数字。
    • 好建议,但这是那些大公司的事情之一,要改变这一点至少需要一年时间。如果我正在控制数据,我会将其格式化为 yyyy.mm.dd,因为在这种情况下,基于词法顺序或 unixtime 的排序会产生相同的结果。
    猜你喜欢
    • 2021-02-02
    • 1970-01-01
    • 1970-01-01
    • 2018-06-08
    • 2012-06-18
    • 2020-12-18
    • 2018-09-07
    • 2019-08-12
    • 1970-01-01
    相关资源
    最近更新 更多