【发布时间】:2016-09-15 23:57:11
【问题描述】:
我在 teradata 中有一个查询,我试图从 yyyymmdd (20160201) 格式的特定日期获取周数。我们有一个日历表(不是 teradata 表,因为我们对周数的计算方式略有不同)允许您加入日期并导出结果
当我使用静态日期运行查询时,下面的示例运行良好
FROM table_main AL1
JOIN cal_table cal
ON AL1.run_date = cal.cal_dateyyyymmdd
WHERE AL1.run_date >= 20160201
AND AL1.run_date < 20160220
当我试图将陈述概括为前一周时
FROM table_main AL1
JOIN cal_table cal
ON AL1.run_date = cal.cal_dateyyyymmdd
WHERE AL1.run_date >= CAST(CAST(((DATE-DAYOFWEEK(DATE)-5) (FORMAT 'YYYYMMDD')) AS CHAR(8)) AS INT)
AND AL1.run_date < CAST(CAST(((DATE-DAYOFWEEK(DATE)+ 1) (FORMAT 'YYYYMMDD')) AS CHAR(8)) AS INT)
我得到了错误
选择失败。 3706:语法错误:预期在 ')' 和 '-' 之间。
有人见过这个吗?
【问题讨论】:
标签: sql teradata week-number