gpt4 book ai didi

mysql - 将字符串视为 MySQL 语句?

转载 作者:行者123 更新时间:2023-11-29 02:35:53 24 4
gpt4 key购买 nike

我有一张表,其中包含商店中商店陈列的安装日期信息。每个店铺陈列都有一定的保修期,可以是6个月,1年,2年等,我在另一个表中存储为“6 MONTH”,“1 YEAR”,“2 YEAR”等。

是否可以使用单个 MySQL 查询来计算每个商店展示的到期日期?我正在寻找这样的东西:

SELECT t1.install_date, (t1.install_date + INTERVAL t2.period) 作为 expiry_date FROM t1, t2

所以,我基本上是在尝试将从 t2 表中获取的字符串值作为 MySQL 语句的一部分。这可能吗?对于我的查询,MySQL 没有给出任何错误,但在 expiry_date 列中显示如下值:“20110228”、“20110224”对应 t1.install_date“2011-02-28”、“2011-02-24”的相应值.

最佳答案

这比我想象的要难,因为 DATE_ADD 不会接受字符串作为 INTERVAL 单元。所以我想出的解决方案是通过乘以 12 将所有 YEAR 值动态转换为月份。

此外,您需要指定一个连接条件,否则您将计算两个表的整个笛卡尔积的间隔。

SELECT t1.install_date, DATE_ADD(t1.install_date, 
INTERVAL IF(SUBSTRING_INDEX(t2.period,' ','-1')='YEAR',
SUBSTRING_INDEX(t2.period,' ','1')*12,
SUBSTRING_INDEX(t2.period,' ','1'))
MONTH) as expiry_date
FROM t1,t2 WHERE t1.id = t2.id

关于mysql - 将字符串视为 MySQL 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5181075/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com