我的MySQL数据库中有一个日期列(Date,INDEX),但是由于要进行一些高级的日期查询,因此必须将日期和月份转移到新列'shortDate'中。

高级查询包括季节性搜索,因此我可以搜索夏季/冬季/秋季/春季/圣诞节/新年/复活节但任何年份的所有照片。这使我可以在夏季运行如下查询:

...WHERE shortDate BETWEEN 0621 AND 0921...;"


因此,新列(shortDate)应该如下所示:

Date                shortDate
2011-01-28          0128
2011-06-17          0617
2011-12-22          1222


我已经创建了新列,但是我想知道最快的解决方案来转移/转换日期列并将转换写入新列吗?这一切都可以用SQL完成吗?还是需要包括另一种服务器语言?

我有15万行,如果我做不正确的话,可能要花一些时间。因为我的SQL技能非常生锈,所以我可能会编写一些ASP来读取,隐藏和插入新数据,但我希望有一种更快的方法...

最佳答案

您需要的是:

Update YourTable
set shortDate = date_format(`Date`, '%m%d')


这将照顾您的现有数据。您必须确保在表中输入的任何新数据都将遵循相同的规则。

您可以在插入数据的应用程序中执行此操作,也可以通过在负责处理shortdate内容的表中创建触发器来执行此操作。

09-18 22:05