检查日期语法 - teradata SQL

时间:2014-08-20 18:12:41

标签: sql teradata

我正在尝试检查日期,但在运行下面的查询后,它没有显示任何结果。有人可以推荐我正确的语法吗?

SELECT TOP 10 * FROM MY_DATABASE.AGREEMENT
WHERE end_dt=12/31/9999

3 个答案:

答案 0 :(得分:3)

12/31/9999 可能看起来像是您的日期,但对于数据库来说,它是一个计算:

12除以31除以9999 ,因为这涉及INTEGER除法,这导致INTEGER 0

所以最后你将DATE与INT进行比较,这导致将DATE类型转换为INT。

在Teradata中编写日期文字的唯一可靠方法是 DATE ,后跟带有 YYYY-MM-DD 格式的字符串:

DATE' 9999-12-31'

类似于 TIME&#39; 12:34:56.1&#39; TIMESTAMP&#39; 2014-08-20 12:34:56.1&#39; < /强>

答案 1 :(得分:1)

是日期栏吗?然后尝试where end_dt = '9999-12-31'

答案 2 :(得分:0)

你问的问题不是很清楚。您指定的日期取决于语言。 尝试     SELECT TOP 10 * FROM MY_DATABASE.AGREEMENT WHERE end_dt='99991231'