You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Synapse中如何将parquet文件的varchar时间列转为datetime类型

解决方案

你可以通过显式指定字段并对dateTimeStamp做类型转换修改视图定义即可,修改后的视图创建代码如下:

CREATE OR ALTER VIEW DeviceTelemetryView
AS SELECT 
    -- 此处根据你实际的Parquet文件字段补全所有需要对外暴露的列
    TRY_CAST(dateTimeStamp AS DATETIME2) AS dateTimeStamp,
    deviceId,
    telemetryValue1,
    telemetryValue2
FROM
    OPENROWSET(
        BULK 'https://test123.dfs.core.windows.net/devicetelemetry/*/*/*/*/*/',
        FORMAT = 'PARQUET'
    ) AS [result]

说明:

  • 优先使用TRY_CAST进行转换:如果存在格式不符合要求的时间戳字符串,TRY_CAST会返回NULL而不会导致整个查询报错,更适配IoT遥测数据可能存在脏数据的场景。
  • 若你确认所有dateTimeStamp取值都严格符合ISO 8601标准时间格式,也可以替换为CAST(dateTimeStamp AS DATETIME2)使用。
  • 转换完成后即可直接使用时间范围筛选,示例查询如下:
-- 按时间范围筛选数据示例
SELECT * FROM DeviceTelemetryView
WHERE dateTimeStamp >= '2021-11-01 00:00:00' AND dateTimeStamp < '2021-11-30 23:59:59'

内容的提问来源于stack exchange,提问作者Josh L

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 11:06:04