gpt4 book ai didi

在文本输入字段中搜索日期的 MySQL 语法

转载 作者:行者123 更新时间:2023-11-29 20:48:13 25 4
gpt4 key购买 nike

我有一个查询,我想让用户在数据库中搜索出生日期。然而,我希望他们能够将其输入为字符串,而不是为 MM、DD、YYYY 设置单独的字段,然后我使用 MySQL 中的 STR_TO_DATE 函数来查找生日并返回具有该生日的人员列表。

由于输入只是一个文本字段,因此可以输入多个选项。例如,以下是人们在搜索中键入的一些方式:

Search MM-DD-YYYY: 
Option 1: 09-22-1958
Option 2: 09/22/1958
Option 3: 9/22/1958
Option 4: 9/22/58

第四个选项,9/22/58,在某些情况下返回正确的结果,但在其他情况下则不然。有时,它说没有结果......但其他时候,使用相同的格式但不同的日期,结果将会出现......即使日期都正确地存在于数据库中。我认为这与 9 月份前面没有尾随的“0”以及“58”年份前面没有“19”有关。

但是,我似乎无法弄清楚如何使查询搜索能够查找所有选项。此外,它在某些情况下有效,例如 8/31/83..,但在其他情况下则无效,例如 9/22/58。

这是查询:

SELECT * FROM database 
WHERE
Birth_Date=STR_TO_DATE(REPLACE('$search', '/', '-'), '%m-%d-%Y') or
Birth_Date=STR_TO_DATE(REPLACE('$search', '-', '/'), '%m/%d/%Y')"

看来我在这里遗漏了一些东西。我添加了 STR_TO_DATE 函数、REPLACE 函数来处理/和 - ...但是,我还需要什么才能确保它在 9/22/58 和其他情况下工作?

最佳答案

另一种方法是,首先通过 php 将日期转换为正确的格式,然后查询结果。

$date = "9/22/58"; //user input

$search = date('d-m-Y', strtotime($date));

关于在文本输入字段中搜索日期的 MySQL 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38282744/

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