想要一个sql来更新一个SUBSTRING

时间:2014-05-01 10:44:04

标签: mysql sql phpmyadmin

我有一个名为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?

1 个答案:

答案 0 :(得分:0)

你可以这样做

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上有索引

,这将明显加快