如何编辑整列中的所有数据?

时间:2017-07-13 15:43:46

标签: mysql sql-update

在我的MySQL数据库中,我有很多带有这种格式的时间戳的数据:

2017.07.13 - 12:00:00:000

我想将其更改为以下格式:

2017-07-13T12:00:00:000-0400

我知道我需要 SELECT 来从表中获取数据,然后更新将其更改为新记录。但我不知道如何使用SQL命令编辑时间戳。

如何使用SQL命令编辑字符串?

2 个答案:

答案 0 :(得分:1)

您无需在select之前运行updateupdate已有数据。你可以这样做:

update table 
set column = concat(replace(replace(column, ' - ', 'T'), '.', '-'), '-0400')

更改column表的table列中所有日期的格式。

演示:http://sqlfiddle.com/#!9/2699e9/2(使用select因为update无法显示任何内容)

  1. https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_concat
  2. https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_replace
  3. https://dev.mysql.com/doc/refman/5.7/en/update.html
  4. 如果您只想更新1个特定行,请使用where子句限制update影响。

答案 1 :(得分:0)

应该可以工作(在SQL-Server中测试)

Update tableName SET col = Replace(col," - ","T") + '-0400'

如果+不适用于mysql,请尝试使用CONCAT

更新:MySQL解决方案

UPDATE tableName SET col = CONCAT(REPLACE(REPLACE(col, ' - ', 'T'), '.', '-'), '-0400')