8

因此,通过阅读 AWS Quicksight 文档,我发现了以下信息。

处理日期时区:

Amazon QuickSight 使用 UTC 时间来查询、筛选和显示日期数据。当日期数据未指定时区时,Amazon QuickSight 会采用 UTC 值。如果日期数据确实指定了时区,Amazon QuickSight 会将其转换为以 UTC 时间显示。例如,时区偏移量为 2015-11-01T03:00:00-08:00 的日期字段将转换为 UTC,并在 Amazon QuickSight 中显示为 2015-11-01T15:30:00。

我在 Quicksight 中分析的 Athena 数据集中有一系列日期。我希望能够在 Quicksight 中将这些日期视为本地时区表示,而不是 UTC 格式。任何人都可以建议最好的方法是什么,或者是否有可能?似乎如果我使用像 formatDate() 这样的计算字段函数,甚至是“AT TIME ZONE”的自定义 SQL,那么我的日期列就会转换为字符串。然后,任何将这些字符串转换回日期的尝试只需将日期转换回 UTC 格式。

我尝试将返回的日期字符串转换为:

parseDate({NEWDATE}, "yyyy-MM-dd HH:mm:ss.SSS ZZZ", "Australia/Melbourne")

但是,这会不断引发错误“此函数没有正确数量的参数”。

任何建议表示赞赏。

4

5 回答 5

4

我遇到过类似的问题。作为一种解决方法(不处理 DST),您可以使用该addDateTime功能。

例如:

  • 计算的文件名:datetimemelbourne
  • 公式:addDateTime(11, 'HH', {datetime})
于 2018-11-29T06:08:32.467 回答
2

与 formatDate 返回字符串和 parseDate 不支持 SPICE 有相同的问题。最后,以下解决方案对我来说效果很好。

parseDate(formatDate({DATE}, 'yyyy-MM-dd', 'America/New_York'))

formatDate 返回所需时区的字符串,而 parseDate 将其转换回日期。由于 SPICE 的 parseDate 问题,我没有找到保持时间的方法,但这并不重要,因为我关心日期。

于 2019-03-19T09:49:47.113 回答
1

This has worked for me:

parseDate(toString(formatDate({your_date_time_field},'MM-dd-yyyy HH:mm:ss','America/New_York')),

'MM-dd-yyyy HH:mm:ss' )

于 2020-12-17T21:02:15.457 回答
0

您将要使用 formatDate,而不是 parseDate。应该是这样的:

formatDate({your date field},"MM/dd/yy HH:mm",'America/Los_Angeles')

parseDate 用于将字符串转换为日期。

于 2019-10-23T20:21:56.783 回答
0

我找到了一个适用于这种 addDateTime 组合的解决方案,但使用 ifelse()

ifelse(
(
    
    (
        extract("MM", {your_date}) >= 3 
        AND 
        extract("DD", {your_date}) >= 14
    ) OR (
        extract("MM", {your_date}) <= 11
        AND 
        extract("DD", {your_date}) <= 7
    )
), 
addDateTime(-4, "HH", {your_date}),
addDateTime(-5, "HH", {your_date}))

这将用于从 UTC 转换为 EST。

于 2021-09-24T02:04:27.993 回答