Teradata / Report Buildeer 3.0在两种不同的数据类型之间投放日期

时间:2016-02-03 14:40:08

标签: sql teradata reportbuilder3.0

我想在SQL中为报表生成器报表添加选择条件。用户将从'中选择一个'和'到'日期,例如11/1/201512/31/2015以及提示。 sql运行良好并带回一切。我试图将选择范围缩小到特定的日期范围。

表格中的日期列jsdateDecimal (8,0)。当我查看此列中的日期时,它看起来像20,150,61220,150,60920,150,611等。

我试图添加像

这样的选择标准

" and cast(jsdate as date format 'mm/dd/yyyy' between 11/1/2015 and 12/31/2015&#34 ;.

我确定我的语法有误,但我不知道如何纠正它。谢谢你的帮助......

select jsdate, jsn, junit, jmyear, jmake, jmodel, jseries, jbuyid
from vehicle_mgmt.AA0888
where jfinowngp = 'B1' and jfinownbr = '99'

1 个答案:

答案 0 :(得分:0)

实际上Teradata使用以下公式存储日期:(年 - 1900)* 10000 +月* 100 +天,所以尝试:

  select jsdate, jsn, junit, jmyear, jmake, jmodel, jseries, jbuyid
    from vehicle_mgmt.AA0888
    where jfinowngp = 'B1' and jfinownbr = '99' and 
CAST(jsdate - 19000000 AS DATE FORMAT 'mm/dd/yyyy') between 
CAST('2015/11/05' AS DATE) 
and CAST('2015/12/31' AS DATE)