Mysql SQL将日期传递到另一个表中

Mysql SQL将日期传递到另一个表中,mysql,sql,Mysql,Sql,我有这样的表,它只有varchar和int类型。我需要将其他表中的日期(参数)传递到此表中。例如:当我通过“2018-01-30”时,它将从一月栏显示。 有办法把这个归档吗 如果要根据日期的月份显示不同的列,可以通过组合和month()函数进行单个查询来实现: select elt(month('2018-01-30'),jan, feb, mar, ..., dec) as mon from yourtable elt()根据第一个参数中提供的索引返回第n个参数。month()函数返回日期

我有这样的表,它只有varchar和int类型。我需要将其他表中的日期(参数)传递到此表中。例如:当我通过“2018-01-30”时,它将从一月栏显示。 有办法把这个归档吗


如果要根据日期的月份显示不同的列,可以通过组合和month()函数进行单个查询来实现:

select elt(month('2018-01-30'),jan, feb, mar, ..., dec) as mon from yourtable
elt()
根据第一个参数中提供的索引返回第n个参数。
month()
函数返回日期中的月份数(例如一月=>1)

如果希望根据日期显示不同的列数,则单个查询不可能显示,因为查询中的列数必须固定。在这种情况下,您需要编写一个使用动态sql生成查询的存储过程,或者编写一段用外部编程语言动态汇编和执行此类查询的代码

进一步说明:

  • 存储在列中的数据似乎是数字,但您将它们存储为字符串。
    decimal
    数据类型似乎更合适

  • 考虑更改您的数据结构,并将一个月或年/月列加上一个价格列,而不是几个月列。总计和平均值可以动态计算


  • 哦,我明白了。我对sql有点陌生。你有什么想法,或者重新构造表以便它可以接收通过的日期吗?