2013-10-14 61 views
-3

我有此代码角色功能

SELECT CAST(i_terminal_id AS INT);

但我不能让它运行它总是说我在INT附近有一个错误。请帮忙。

编辑

这里是我的PHP代码。

public function selectTerminals($id){ 
    $form = $this->getUserData(); 
    $form['id'] = $id; 

    $DAO = $this->getDAO('DAO'); 
    $result=$DAO->query('selectTerminals',$form); 
    $y = sizeof($result); 


     //$result = terminal ids selected 

    $ids = join(',',$result); // 
    $form['terminal_id'] = $ids; 
    $form['array_count'] = $y; 
    $DAO = $this->getDAO('DAO'); 
    $result1 = $DAO->query('displayTerminals',$form); 
    $sample = sizeof($ids); 

    echo $result1; 

} 
+1

您使用的是什么RDMS? mysql,mssql,oracel等? – Arion

+0

查询的其余部分在哪里? 'i_terminal_id'必须来自某处。我想你错过了一个'FROM'子句。 – Steve

+0

i_terminal_id是一个输入。它的价值来自我的PHP代码。 –

回答

0

删除分号(;)。
它应该是:
SELECT CAST(i_terminal_id AS INT)
(假设查询的其余部分,即FROMWHERE条款,是有效的...)

编辑: 按@阿里翁的评论,这是假定你正在使用MS-SQL

+0

如果OP不使用mysql?对?你知道他不是我们的MySQL吗? – Arion

+0

但我的i_terminal_id是一个输入。价值来自我的PHP代码,现在在我的问题上面陈述。 –

0

它必须是这样的:

SELECT CAST(i_terminal_id AS INT) FROM Table 
+0

但我的i_terminal_id的价值只是从我的PHP代码传递。这是一个输入。我没有从数据库中获得价值 –

+0

@maecym所以你可以给我们输入参数中可能的值。 –

0
SELECT CAST(i_terminal_id AS INT) FROM DUAL 

的Oracle/PLSQL

CAST函数一个数据类型转换为另一种。

为CAST函数的语法是:

CAST({EXPR |(子查询)| MULTISET(子查询)} AS TYPE_NAME)

select CAST('22-Aug-2003' AS varchar2(30)) from dual; 

//这会将日期(即:2003年8月22日)转换为varchar2(30) 值。

CONVERT函数将字符串从一个字符集转换为另一个字符集 。

CONVERT函数的语法是:

CONVERT(字符串1,char_set_to,[char_set_from])

字符串1是要转换的字符串。

char_set_to是要转换为的字符集。

char_set_from是要转换的字符集。

请进一步参考visit