SELECT
EXTRACT(YEAR from saledate)||EXTRACT(MONTH from saledate) AS YEAR_MONTH,
FROM trnsact
WHERE YEAR_MONTH <> '2005 8'
以上是我的问题示例代码,它在 Teradata 中运行。
所以,我从在线课程中得到了一些提示&#34; || &#34;符号可以加入日期的年份和月份。
事情是,我不知道排除这个年 - 月对字符串的某些值。与在代码中一样,我想从我的数据中排除2005-08。
答案 0 :(得分:1)
试试这个:
SELECT EXTRACT(YEAR from saledate) || EXTRACT(MONTH from saledate) AS YEAR_MONTH
FROM trnsact
WHERE EXTRACT(YEAR from saledate) <> 2005 AND
EXTRACT(MONTH from saledate) <> 08
我不知道EXTRACT(来自saledate的MONTH)是否将数据作为M
或MM
返回,但是如果它不起作用则将比较切换为8
而不是{ {1}}
答案 1 :(得分:0)
EXTRACT
的重新排列数据类型是INTEGER
,如果您在那里连续自动对具有前导空格和右对齐数字的VARCHAR(11)
进行类型转换:
' 2016 3'
但是没有必要连接,要么使用两个EXTRACT
,要么更好:
WHERE saledate NOT BETWEEN DATE '2016-03-01' AND DATE '2016-03-31'
现在根本没有计算,搜索条件也可能使用索引或分区。