【发布时间】:2026-02-04 07:10:01
【问题描述】:
帮助!我的数据库中的一列用于日期。不幸的是,我所有的日期都是字符串形式(YYYY.MM.DD)。我有一个 MASSIVE 数据库(300+GB),所以最好避免转换。
有没有办法为 YYYY.MM.DD 和 YYYY.MM.DD 之间的日期选择行?脚本会是什么样子?
谢谢!
【问题讨论】:
-
是 MySQL 还是 SQL-Server?
-
如果可能,我不会那样做。可以加一列吗?只是一个计算出来的,持久化和索引的:)。这样你就可以有一个快速的查询。当然可以在运行时进行字符串-日期时间转换,但要以性能为代价。
-
相当明显的问题:为什么要将日期存储为字符串?如果可能,请修复您的架构 - 它会在很多方面让您的生活更轻松。
-
@JonSkeet:更改 300Gb 数据库上的 db 架构很可能会破坏 db 之上的层...在我的情况下,这是由其他人创建的层
-
对此我不确定,也许专业人士会说这是否是个好主意。为什么不制作一个查找表,其中有
select distinct dates(字符串格式)来自您的表格和正确格式的日期(使用当前格式的子字符串等创建)。在此之后,只需join这个新表与您的表在incorrect日期格式上,并在where子句中使用正确的日期格式作为参数。你觉得@JonSkeet 怎么样?它现在会给你一个快速的解决方案,但我也建议你改变你的架构。
标签: mysql sql sql-server database sql-server-2008