sql teradata 筛选日期 - 数据库版本 Teradata 15.10.06.02 和提供程序版本 Teradata.Net 15.11.0.0
sql teradata filtering on date - database version Teradata 15.10.06.02 and provider version Teradata.Net 15.11.0.0
我的 table 有一个日期列。它的数据类型是日期。我通过转到 table name>>columns
确认它,它说 MTH_END_DT [DATE, Not NULL]
我想过滤特定日期的数据。如果我输入一个条件 where MTH_END_DT = '6/1/2018'
我会得到一个错误 select failed [3535] A character string failed conversion to a numeric value.
我关注了这个page。我使用了 where MTH_END_DT = date '6/1/2018'
但出现错误 syntax error invalid date literal
我试过where cast(timestamp_column as date) = date '2013-10-22';
这样的东西,它也抛出错误
我应该如何过滤我的数据?
我觉得很有可能是你输入的日期格式不对?也许它默认包含一个时间。
例如
其中 MTH_END_DT = ‘2013-10-22-00:00:00:00’
只有一种可靠的方法来写日期,使用日期文字、date 'yyyy-mm-dd'
where MTH_END_DT = DATE '2018-06-01'
对于时间戳,它是
TIMESTAMP '2018-06-01 15:34:56'
和时间
TIME '15:34:56'
在SQL助手中建议切换到标准SQL格式YYYY-MM-DD
在工具-选项-数据格式-以此格式显示日期
当我使用 Teradata 过滤查询的特定日期时,我确实遇到了类似的问题。我尝试的第一种方法是将 'DATE' 项如下所示:
WHERE saledate = DATE'04/08/01'
但这并没有解决问题。
然后我使用了一种我在网上冲浪时偶然发现的方法,终于奏效了。
WHERE extract(year from saledate)=2004 AND extract(MONTH from saledate)=8 AND extract(DAY from saledate)= 1
source
我认为这真的不应该这么长,但它奏效了。
我的 table 有一个日期列。它的数据类型是日期。我通过转到 table name>>columns
确认它,它说 MTH_END_DT [DATE, Not NULL]
我想过滤特定日期的数据。如果我输入一个条件 where MTH_END_DT = '6/1/2018'
我会得到一个错误 select failed [3535] A character string failed conversion to a numeric value.
我关注了这个page。我使用了 where MTH_END_DT = date '6/1/2018'
但出现错误 syntax error invalid date literal
我试过where cast(timestamp_column as date) = date '2013-10-22';
这样的东西,它也抛出错误
我应该如何过滤我的数据?
我觉得很有可能是你输入的日期格式不对?也许它默认包含一个时间。
例如
其中 MTH_END_DT = ‘2013-10-22-00:00:00:00’
只有一种可靠的方法来写日期,使用日期文字、date 'yyyy-mm-dd'
where MTH_END_DT = DATE '2018-06-01'
对于时间戳,它是
TIMESTAMP '2018-06-01 15:34:56'
和时间
TIME '15:34:56'
在SQL助手中建议切换到标准SQL格式YYYY-MM-DD
在工具-选项-数据格式-以此格式显示日期
当我使用 Teradata 过滤查询的特定日期时,我确实遇到了类似的问题。我尝试的第一种方法是将 'DATE' 项如下所示:
WHERE saledate = DATE'04/08/01'
但这并没有解决问题。
然后我使用了一种我在网上冲浪时偶然发现的方法,终于奏效了。
WHERE extract(year from saledate)=2004 AND extract(MONTH from saledate)=8 AND extract(DAY from saledate)= 1
source
我认为这真的不应该这么长,但它奏效了。