gpt4 book ai didi

php - 如何使用php检查项目是否已过期

转载 作者:行者123 更新时间:2023-11-29 00:08:15 24 4
gpt4 key购买 nike

我有一个表格,用于更新某人购买的保单。

我的想法是,应该检查要续订的项目的到期日期根据续订表格中的新购买日期。

我试过了:

$check="SELECT * FROM transactions WHERE Expiry_Date > '$_POST[newDate]' and Policy_Number = '$_POST[Policy_Number]' ";

但它没有进行正确的检查。

相反,例如,如果到期日期是“2015-23-9”而新日期是“2015-22-9”,它仍然接受不应该是的数据,但如果新日期是例如“2014- 22-19"然后它会给出我正在寻找的派生结果。

关于我的 sql 语句,如何使用新日期检查项目 (policy_number) 及其过期日期以查看该项目是否真的过期?

最佳答案

您似乎正在使用这样的格式来存储日期:YYYY-DD-M 看起来它们以这种方式存储在您的列中,并以这种方式在您的查询中呈现给 DBMS。

以这种方式存储的日期将无法正确地相互比较。

在你的 SQL 中试试这个

 WHERE STR_TO_DATE(Expiry_Date, '%Y-%d-%m') >
STR_TO_DATE('$_POST[newDate]' , '%Y-%d-%m')

格式化字符串 '%Y-%d-%m' 告诉 STR_TO_DATE() 您的字符串采用 YYYY-DD-M 格式。如果你给这个函数一个像 2014-22-19 这样的虚假日期,它会返回 NULL,所以要小心。

这会将您的输入和列值都转换为 DATE 字段,这会按照您期望的方式进行比较。

更好的是,如果可以的话,切换到对日期使用 YYYY-MM-DD 字符串格式,并在列中使用 DATE 数据类型。您会喜欢它的,因为您可以使用索引加快处理速度。

关于php - 如何使用php检查项目是否已过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26486047/

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