我有一张表months
-
create table months (mid int(10), month varchar(12));
在mid
列中,我已将1
提供给12
个数字,并将January
提交给December
和其他表allocate
,我有33个列
mid - reference key for **months** table
product_id - comes from url
列day1
到day31
根据product_id存储特定产品上每个月的日期。
用户以yyyy-mm-dd
格式输入日期。如果我排除年份将成为mm-dd格式,我想与数据库日期进行比较。但是那天是第1天到第31天。我如何比较这两个日期
我不知道如何做到这一点
答案 0 :(得分: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
如果您添加了一些关于您要存储的内容以及您如何使用它的背景信息,我们确信我们可以提出一个有意义的表格结构。