MySQL - 传输数据

时间:2011-09-30 22:35:15

标签: mysql sql database database-design

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

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

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

所以新列(shortDate)应如下所示:

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

我创建了新列,但我想知道转移/转换日期列并将转换写入新列的最快解决方案?这在SQL中是否可能,或者我是否需要包含其他服务器语言?

我有150,000行,如果我不采用正确的方式,可能需要一段时间。因为我的SQL技能非常生疏,我可能会写一些ASP来阅读,隐藏和插入新数据,但我希望有更快的方法......

1 个答案:

答案 0 :(得分:2)

所有你需要的是:

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

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

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