我有一个名为calendar的表,其中的DateTo列
格式为2014-02-19T16:00:00(varchar,无法更改)
我想将时间设为13:00
我试过了
UPDATE calendar
SET DateTo = (SUBSTRING(DateTo FROM 1 FOR 11) + '13:00')
WHERE SUBSTRING(DateFrom FROM 1 FOR 10) = '2014-02-19'
认为这会给我:
2014-02-19T13:00
但是它返回2027?
最佳答案
你可以做
update
calendar
set DateTo = concat(
substring_index(DateTo,'T',1),'T','13:00'
)
where substring_index(DateTo,'T',1) = '2014-02-19'
;
DEMO
正如MatBailie建议的那样
where substring_index(DateTo,'T',1) = '2014-02-19'
更好用
WHERE DateTo LIKE '2014-02-19T%'
如果DateTo上有索引,这将明显更快
关于mysql - 想要一个SQL来更新一个SUBSTRING,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23406133/