我尝试将DIM_DT_ID的值转换为MMddYY。我在doinf中取得了成功。但是,查询失败,因为最终我在这里比较了一个字符值到日期。有没有办法让我可以获得MMddyy格式的DIM_DT_ID值,它的数据类型仍然是DATE? 这里是DIM_DT_ID SELECT DIM_DT_ID DIM_DT_ID> = FORMATDATE(' MMddyy',ADDDAY(TO_date(' yyyy-MM-dd',' 2016-12-21'), - 25)) ;来自abc; 问候, 阿贾伊
答案 0 :(得分:0)
在Denodo中,要将字符串转换为日期字段,请使用" to_date()" (返回日期)。
然后,不要将该字段转换回字符串,将该字段保留为日期(因此不要使用" Formatdate()&#34 ;,这将返回一个字符串)。
所以:
SELECT *
FROM MyTable
WHERE now() >= to_date('yyyy-MM-dd',myStringFieldThatLooksLikeADate)
在我的例子中," now()"是一个日期,to_date函数的输出也是如此......所以你可以进行比较。
如果您尝试使用formatdate将日期转换回字符串,则无法正常工作:
#This doesn't work:
SELECT *
FROM MyTable
WHERE now() >= formatdate('MMddyy',to_date('yyyy-MM-dd',myStringFieldThatLooksLikeADate))
它不起作用,因为我们正在将日期(" now()")与字符串进行比较。