1

我正在从数据湖 (csv) 读取数据,并且在运行以下查询时,我收到“从字符串转换日期和/或时间时转换失败”错误消息。

    select convert(datetime, NullIf(ltrim(rtrim([Date started])), ''), 111)
    FROM dl.temp

浏览了数据并检查了源文件,没有发现任何异常。

一旦我包含 * 并将查询更改为以下,一切运行正常,并且转换似乎正在完成它的工作。

    select convert(datetime, NullIf(ltrim(rtrim([Date started])), ''), 111),*
    from dl.temp

出于好奇还想检查最大和最小日期,所以运行 max 给了我以下信息:

在此处输入图像描述

但是,当我像下面这样搜索那个特定值时,我没有得到任何返回的行。似乎将其设置为列名。有谁知道发生了什么?

    select *
    from dl.temp
    where [Date started] = 'Date started'

我正在针对 Azure 数据仓库运行它。

4

1 回答 1

0

我想你会发现问题出在你的外部文件格式上。

在创建外部文件格式中,您可能需要在格式选项中添加 FIRST_ROW=2。

https://docs.microsoft.com/en-us/sql/t-sql/statements/create-external-file-format-transact-sql

于 2018-05-08T07:26:01.167 回答