我做的有点倒退:
所以我将一个列从 datetime 转换为 varchar(有正当理由)。我的问题是来自 TIME 的所有 0 也都发生了变化。尝试使用 concat() 剥离字符串。
Ex: 2013-12-12 00:00:00
Output: 2013-12-12
问题是,并非所有的 varchar 都以“00:00:00”结尾。其中一些是在系统转到 varchar 而不是 datetime 之后放入的,所以我可以直接从字符串中删除 say -X 而无需先检查它是否大于 12 个字符。
我在想类似的东西
UPDATE logic_intern_report_link SET comp_date=SUBSTR(comp_date,0,10)
然而,这最终会删除该列的所有值。
最佳答案
我同意 JW. 的解决方案,但只是回答你的问题: 您在原始查询中获得空值的原因是 SUBSTR() 函数需要一个基于 1 的起始索引,而不是您作为第二个参数提供的零。 试试这个
SELECT SUBSTR(comp_date,1,10) FROM logic_intern_report_link
看看区别。
(完整披露:SUBSTR() 函数也接受负起始索引)
关于MySQL 从转换为 varchar 的 datetime 中删除剩余时间。子字符串()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15480476/