0

我有一张桌子months-

create table months (mid int(10), month varchar(12)); 

在列中,mid我给出112数字和月份JanuaryDecember

和其他表allocate,我有 33列

mid - reference key for **months** table
product_id - comes from url

day1用于day31根据 product_id 存储特定产品每个月的天数的列。

用户以yyyy-mm-dd格式输入日期。如果我排除年份,它将成为 mm-dd 格式,我想与数据库日期进行比较。但是那里是第 1 天到第 31 天。我如何比较这两个日期

我不明白如何做到这一点

4

1 回答 1

1

我强烈建议更改您的表结构以使用日期数据类型,并对其进行规范化(即没有 31 列来表示月份中的某天)。

如果要从日期字段中提取月份,1-12,请使用MONTH(),同样DAY()用于日期。

否则,您将打破用户提供的日期,并且必须使用动态查询来指向预期的字段。

我无法从问题中看出您到底需要什么,以及如何使用数据,但我看到提到了 Product_ID。所以也许你需要类似的东西:

YourTable (ProductID, Date, Value)

如果年份与您的数据无关,则年份可以始终相同。而不是拥有 31 天的字段,您只需拥有多行,即:

ProductID Date         Value
1         19000501     5
1         19000502     9
1         19000503     4

如果你添加一些关于你正在存储的内容以及你如何使用它的上下文,我相信我们可以提出一个有意义的表结构。

于 2013-08-14T17:43:22.307 回答