You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何修改Tableau参数以按DD/MM/YYYY HH:MM:SS读取日期

解决Tableau按DD/MM/YYYY HH:MM:SS格式读取日期的批量方案

我之前处理跨国数据源的时候完全碰到过一模一样的坑!Tableau默认的日期解析逻辑真的会搞疯人,尤其是批量字段要改的时候,一个个做计算字段太浪费时间。分享几个不用逐个改字段的解决方案,按优先级排序:

1. 全局修改Tableau区域设置(一劳永逸)

如果你的日常工作里大多是DD/MM/YYYY格式的日期,直接改全局区域设置最省心:

  • 打开Tableau后,点击顶部菜单栏的 帮助 > 设置和性能 > 选择区域设置
  • 在弹出的窗口里,选一个默认用日/月/年的区域,比如「English (United Kingdom)」或者「Chinese (Hong Kong SAR)」
  • 重启Tableau,之后所有新连接的数据源都会自动按这个区域的日期规则解析字符串,再也不用手动调整单个字段

2. 针对当前数据源单独配置日期解析规则

如果只是这个SQL Server数据源有问题,不想全局改设置:

  • 切换到Tableau的「数据源」标签页,点击顶部的 数据 > 数据源属性
  • 在弹出的窗口里切到「日期格式」选项卡,在「默认日期格式」下拉里选择自定义格式,输入 dd/MM/yyyy HH:mm:ss
  • 点击确定后刷新数据源,Tableau会重新按这个格式解析所有日期字符串字段,不用再碰计算字段

3. 让SQL Server提前转换日期(最稳妥的方案)

如果上面两种方法还是有个别字段出问题,直接让数据库把字符串转成标准datetime再返回给Tableau:

  • 不要直接拖表到数据源,而是选择「新建自定义SQL」
  • 用SQL Server的CONVERT函数批量处理日期字段,示例SQL如下:
    SELECT 
        CONVERT(datetime, order_date, 103) AS order_date,
        CONVERT(datetime, delivery_date, 103) AS delivery_date,
        -- 把所有需要的日期字段都按这个格式转换,其他字段正常保留
        customer_id, order_amount
    FROM sales_table
    
    这里的103是SQL Server对应「DD/MM/YYYY」格式的转换代码,这样返回给Tableau的就是标准datetime类型,完全避免解析错误

小提醒

如果之前已经把这些日期字段拖到工作表里了,记得先把它们从左侧的维度/度量面板里移除,刷新数据源后再重新添加,不然Tableau可能还会沿用之前错误的解析结果。

内容的提问来源于stack exchange,提问作者tinakoua nadia

火山引擎 最新活动