我的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
内容的表中创建触发器来执行此操作。