转换函数

时间:2017-08-01 07:27:33

标签: oracle

我正在尝试使用convert函数将日期字段转换为varchar,但它不断给出缺少的表达式错误。

我的查询:

select INVENTORY_ITEM_ID, 
       convert(varchar(20), IMPLEMENTATION_DATE,110) 
from apps.mtl_item_revisions  
where INVENTORY_ITEM_ID=21928;

给出错误:

  

ORA-00936:缺少表达式
  00936. 00000 - "缺少表达"
  *原因:
  *动作:行错误:97列:35

1 个答案:

答案 0 :(得分:-1)

以下行是Microsoft SQL Server语法,而不是Oracle语法:

convert(varchar(20), IMPLEMENTATION_DATE,110) 

使用什么类型的数据库驱动程序或谁编写它并不重要。使用SQLServer语法将查询发送到Oracle,Oracle正在提供错误。 (另外,虽然在查询工具中可能需要它,但要小心用分号终止oracle SQL语句;在某些语言中(例如C#或PL / SQL中的动态SQL),可能会出现意外的字符错误。)

将您的SQL更改为:

select INVENTORY_ITEM_ID, 
   to_char(IMPLEMENTATION_DATE, 'mm-dd-yyyy') as IMPLEMENTATION_DATE
from apps.mtl_item_revisions  
where INVENTORY_ITEM_ID=21928

这是ORAC等效的SQLServer 110日期格式