Консоль Rails: обновите значения столбцов усеченными значениями - PullRequest
0 голосов
/ 22 октября 2018

У меня есть некоторые записи с неверными данными в значениях столбцов

:content => "1899-12-31T05:24:00+00:00"
:content => "1899-12-31T03:25:00+00:00"
:content => "1899-12-31T01:12:00+00:00"

мне нужно обрезать переднюю часть и заднюю часть и обновить данные, чтобы они выглядели так:

:content => "05:24"
:content => "03:25"
:content => "01:12"

это можетдостигается с помощью обрезки передней части 1899-12-31T и задней части : 00 + 00: 00

обратите внимание, что «содержимое» - это строка тип столбца,

Я попробовал следующий запрос, но он ничего не делает

Option.where("content like '1899-12-31T%'").update_all("content = SUBSTRING(content, 1,LENGTH(content) - 6)")

Любая помощь / предложение будет оценено.

1 Ответ

0 голосов
/ 22 октября 2018

Является ли тип данных строкой?потому что он выглядит как datetime, если он является строкой и имеет одинаковую длину во всех записях, тогда вы можете использовать некоторый метод, например

Option.each do |option|
 option.update(content: option.content[11..15])
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...