我想从数据库中获取数据,但是比较的值的格式却不相符。
数据库中的数字以奇怪的格式保存-有时四舍五入,其中一些是小数(10、14、15、12.44、16.10等)
在数组中,我的值虽然四舍五入为两位小数。
我想像这样从数据库中获取数据:
$foundPayments = $this>paymentsRepo>newQuery()>whereRaw("CONVERT(DECIMAL(10,2),payments.amount) = :payments", ['payments' => $payments]);
考虑到这一点,我最终遇到了这样的错误:Syntax error: 7 ERROR: syntax error at or near ","
我不确定代码是否可以像我一样在laravel 5.1
中发送参数,但是那并不是我真正关心的-即使我不使用变量,也会出现同样的错误。
编辑:
我正在使用Postgres。
答案 0 :(得分:1)
我认为您用于convert函数的语法是错误的。您应该首先传递值,然后传递您要转换为的类型。 但是请尝试强制转换功能,我认为它应该可以给您预期的结果。
$foundPayments = $this->paymentsRepo->newQuery()
->whereRaw("CAST(payments.amount as DECIMAL(10,2)) = :payments",
['payments' => $payments]);