对于Qlik Sense日期选择器扩展,使用PostgreSQL(AWS Redshift)将日期格式从'M / D / YYYY'更改为'DD / MM / YYYY'

问题描述 投票:0回答:1

我正在尝试通过AWS Redshift将时间戳字段的格式更改为某种格式的日期字段。

我在Google上搜索了很多,发现的常见“最佳实践”是将时间戳转换为日期,然后使用to_char将其转换为正确的格式。最后,我想在Qlik Sense仪表板中使用日期字段,在该字段中输入日期选择器扩展名,显然它要求使用DD / MM / YYYY格式。

数据库中的当前日期格式:9/2/2019 6:38:00 AM(我将其描述为M / D / YYYY H:MM:SS ZZ)

所需的输出:DD/MM/YYYY,结果为02/09/2019

当前状态:to_char(cast(timestamp_field as date), 'DD/MM/YYYY')->结果:02/09/2019

但是,Qlik Sense中的日期选择器扩展名仍然不起作用,我想这是因为输出是字符串而不是日期。将字符串转换为日期会返回错误。

cast(to_char(cast(timestamp_field as date), 'DD/MM/YYYY') as date) as date_picker_date

连接器回复错误:SQL ## f-SqlState:57014,ErrorCode:30,ErrorMsg:[Amazon] [Amazon Redshift](30)尝试时发生错误执行查询:[SQLState 57014]错误:将文本转换为错误日期

我是Redshift的新手,应该可以使用格式字符串作为参数进行转换,但是显然这不是问题。有人可以启发我解决该问题吗?

date datepicker amazon-redshift qliksense
1个回答
0
投票

您可以在QlikSense脚本的开头尝试使用时间戳。它将在脚本的开头。在主要部分中,如下所示:

SET TimestampFormat='M/D/YYYY h:mm:ss[.fff] TT';

这里SET用于定义该应用程序中的时间戳。您可以尝试在此处更改您的要求。其他2个选项1使用已经使用过的图章或从lib创建自己的扩展名邮票的使用可以像这样:

Datestamp_Table:
Load *,
Date(Date#(StringDate,'M/D/YY'),'DD/MMM/YY') as Date;
LOAD * INLINE [
StringDate
8/7/97
8/6/97];

输出将是这样:

Stringdate   Date
8/7/97       07/Aug/97
8/6/97       06/Aug/97
© www.soinside.com 2019 - 2024. All rights reserved.