我有一个SQL表收集表单结果。我注意到在收集了大约200个结果后,而不是2011-06-01格式的日期,它的格式为2011-6-01,跳过前导零。这给出了一些数据处理问题。有没有办法更新所有2011-6-xx值,然后再制作2011-06-xx?可以接受PHP / MySQL或MS-SQL语句中的解决方案,因为数据是使用PHP / MySQL表单在Web服务器上收集,导出为CSV,然后导入到现场的MS-SQL数据库中进行数据分析。 / p>
答案 0 :(得分:3)
UPDATE `table` SET `date_column` = REPLACE(`date_column`, '2011-6-', '2011-06-') WHERE `date_column` LIKE '2011-6-%';
答案 1 :(得分:2)
UPDATE Table1
SET field1 = REPLACE(field1, '2011-6-', '2011-06-')
WHERE field1 LIKE '2011-6%'
在哪里可以让你使用索引和替换比查看所有行更快
同样在strict
模式下,MySQL不会在没有where
子句的情况下执行UPDATE语句。
答案 2 :(得分:1)
您谈论的是MS-SQL和MySQL。如果它是MS SQL,那么下面应该可行。我不知道MySQL是使用REPLACE
还是具有等效函数。
UPDATE
Some_Table
SET
some_string = REPLACE(some_string, '2011-6-', '2011-06-')
WHERE
some_string LIKE '2011-6%'