【发布时间】:2019-02-23 14:27:55
【问题描述】:
我有用于 redshift 的 SQL 脚本
这是部分代码
SELECT clo.name AS SalesManager,
prospect.id AS ProspectId,
prospect.fullname AS ProspectName,
prospect.company,
Prospect.Email,
prospect.phonehome,
prospect.phonecell,
prospect.phonework,
prospect.phoneworkext,
pct.PercentClosing,
pct.PercentClosingLearn,
pct.PercentClosingLMS,
COALESCE(CAST(paying.Paying AS VARCHAR), 'NO') AS Paying,
COALESCE(CAST(paying.Paying AS VARCHAR), 'NO') AS PayingLearn,
--CONVERT(DATE, metaData.ClosingDatePM) AS CloseDatePM,
CAST(metaData.ClosingDatePM AS DATE) AS CloseDatePM,
DATE_PART(YEAR, metaData.ClosingDatePM) AS CloseYear,
DATE_PART(MONTH, metaData.ClosingDatePM) AS CloseMonth,
CASE WHEN DATE_PART('MONTH', metaData.ClosingDatePM)||'/1/'||DATE_PART('YEAR', metaData.ClosingDatePM) = '/1/' THEN NULL ELSE DATE_PART('MONTH', metaData.ClosingDatePM)||'/1/'||DATE_PART(YEAR, metaData.ClosingDatePM) END AS MonthClose,
metaData.*
当我尝试运行脚本时,出现错误。
这个
[42883][500310] Amazon 无效操作:函数 pg_catalog.pgdate_part("unknown", text) 不存在; java.lang.RuntimeException: com.amazon.support.exceptions.ErrorException: Amazon Invalid operation: function pg_catalog.pgdate_part("unknown", text) 不存在;
但如果我评论那些行
DATE_PART(YEAR, metaData.ClosingDatePM) AS CloseYear,
DATE_PART(MONTH, metaData.ClosingDatePM) AS CloseMonth,
CASE WHEN DATE_PART('MONTH', metaData.ClosingDatePM)||'/1/'||DATE_PART('YEAR', metaData.ClosingDatePM) = '/1/' THEN NULL ELSE DATE_PART('MONTH', metaData.ClosingDatePM)||'/1/'||DATE_PART(YEAR, metaData.ClosingDatePM) END AS MonthClose,
一切都很好。
示例表数据(我只添加了一列,因为问题,我认为与它有关):
closingdatepm
-------------
9/16/2013
12/01/2017
3/1/2014
5/1/2015
01/01/2018
4/1/2014
8/1/2014
10/31/2017
01/01/2018
5/1/2015
我的麻烦在哪里?
【问题讨论】:
标签: sql amazon-redshift