2

在将时间戳从JVM SimpleDateFormat 域转换 为SQL DW 的 DateFormat 域时,我目前遇到了 Azure SQL DW 的限制。

在我目前的场景中,我们使用 Spark 执行数据清理,当数据作为 CSV 文件写出时,它会以以下格式写出为时间戳:

  • “yyyy-MM-dd'T'HH:mm:ss.SSSXXX”
  • 2001-07-04 T 12:08:56.235-07:00

查看 DATE_FORMAT 选项下的 DateTimeOffset,不支持上述输出中的粗体T。

有没有办法直接将传入的字符串解释为 DateTime 类型?

我目前的策略是将其加载为 VARCHAR 并稍后进行清理。

4

1 回答 1

3

看起来除非您在日期时间本身到达 SQL DW 之前对其进行转换,否则由于 T,它不会被解释为日期时间。最好的选择是将其作为 varchar,然后将其转换为 SQL DW 中的日期时间,如下所示:https://msdn.microsoft.com/en-us/library/ms187928.aspx#Examples:Azure SQL 数据仓库和并行数据仓库

我还建议在功能请求门户中投票以获得更灵活的日期时间格式,这样您就不必经历这个过程

于 2016-11-10T17:43:57.813 回答