【问题标题】:Cast function in sql errorsql错误中的转换函数
【发布时间】:2013-10-21 15:54:44
【问题描述】:

我有这个代码

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;

}

【问题讨论】:

  • 您使用的是什么 RDMS? mysql、mssql、oracle 等?
  • 查询的其余部分在哪里? i_terminal_id 必须来自某个地方。我认为您缺少FROM 子句。
  • i_terminal_id 是一个输入。它的值来自我的 php 代码。
  • @Mureinik 编辑了我的问题。

标签: php sql casting


【解决方案1】:

应该是这样的:

SELECT CAST(i_terminal_id AS INT) FROM Table

【讨论】:

  • 但是我的 i_terminal_id 的值只是从我的 php 代码中传递过来的。这是一个输入。我没有从数据库中得到值
  • @maecym 那么你能给我们这个输入参数的可能值吗?
【解决方案2】:

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

编辑: 根据@Arion 的评论,这假设您使用的是 MS-SQL

【讨论】:

  • 如果OP没有使用mysql?正确的?你知道他不我们mysql吗?
  • 但我的 i_terminal_id 是一个输入。该值来自我的 php 代码,现在我在上面的问题中说明了这一点。
【解决方案3】:
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(string1, char_set_to, [char_set_from])

string1是要转换的字符串。

char_set_to 是要转换成的字符集。

char_set_from 是要转换的字符集。

更多参考请visit

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-19
    • 2016-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多