SQL 表达式导致 ORA 00936 缺少表达式错误

SQL expression cause ORA 00936 Missing Expression Error

我正在尝试在 ssas 项目中添加一个命名计算字段,以下表达式适用于 sql 服务器数据源,不适用于 oracle 数据源:

convert(datetime,convert(date,DATE_HR_INSC),110)

谢谢!

此 SQL 服务器代码的第一个内部步骤是将 DATE_HR_INSC 转换为日期。然后,将其转换为格式掩码 110 的日期时间。我不确定这是否有意义,相反我希望看到以下内容:

CONVERT(varchar, CONVERT(date, DATE_HR_INSC), 110)

这会生成格式为 mm-dd-yyyy 的日期时间。我们可以尝试使用 TO_DATETO_CHAR 函数在 Oracle 中对此进行近似。像这样:

TO_CHAR(TO_DATE(DATE_HR_INSC, 'yyyy-mm-dd'), 'mm-dd-yyyy')

Demo

这假设 DATE_HR_INSCyyyy-mm-dd 格式。如果它的格式是其他格式,则替换上面对 TO_DATE 的调用中使用的掩码。

我猜您想使用格式 110 将日期值转换为字符串,这表示 mm-dd-yyyy (12-30-2019)。

在oracle中的实现方式是:

to_char(date,'mm-dd-yyyy')