У меня возникли проблемы с попыткой преобразовать столбец из «varchar» в «деньги». По-видимому, схема по умолчанию неверна. Когда я пытаюсь сохранить поле для PriceRule, я получаю следующую ошибку:
Ошибка SQL: запрещено неявное преобразование типа данных varchar в тип данных money, «PriceRule», столбец «UnitPrice». Используйте функцию CONVERT для выполнения этого запроса.
Соответственно, я пытаюсь использовать функцию convert для преобразования типа данных поля.
В моей модели:
public function beforeSave($options = array()){
$UnitPrice = $this->data["PriceRule"]["UnitPrice"];
$this->data["PriceRule"]["UnitPrice"] = 'CONVERT(money,$UnitPrice)';
}
Это SQL, который он генерирует:
UPDATE [pricerule]
SET [pricepolicyid] = 1,
[producttypeid] = 1,
[unitprice] = 'CONVERT(money,$UnitPrice)',
[minquantity] = 1,
[maxquantity] = 4,
[modifiedby] = 1055,
[modifieddate] = '2016-08-16 11:18:11',
[active] = '1'
WHERE [pricerule].[priceruleid] = 62
Этот запрос не выполняется, поскольку функция CONVERT создается как строка, а не как функция.
Я постоянно пытался найти обходные пути и бесконечно копался в Google и не нашел ничего полезного.
Если у кого-то есть способ исправить это, это было бы здорово! Даже альтернатива, любая помощь потрясающая!
Заранее спасибо!