0

我正在尝试将 DIM_DT_ID 的值转换为 MMddYY。我成功地做到了这一点。但是,查询失败,因为最终我在这里比较一个字符值和日期。有没有一种方法可以让我以 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)); 来自美国广播公司;问候, 阿杰

4

1 回答 1

0

在 Denodo 中,要将字符串转换为日期字段,请使用“to_date()”(返回日期)。

然后,不要转换回字符串,将该字段保留为日期(因此不要使用返回字符串的“Formatdate()”)。

所以:

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()”)与字符串进行比较。

于 2016-12-22T18:30:52.897 回答