我想通过ajax在我的数据库中搜索每个按下的键的日期。输入字段的日期格式为d.m.Y(德国格式)。
因此,如果我在搜索字段中输入"26.1",我希望得到像26.10.2016,26.11.2091,26.12.1985等搜索结果。我的想法是:将datetime转换为字符串,并将输入字符串与数据库进行比较。
我如何处理datetime字段作为一个字符串?这可能吗?
谢谢!
您可以轻松地将日期管理为字符串,并使用str_to_date转换日期,例如:
str_to_date('26.10.2016' , '%d.%m.%Y')
或
str_to_date('10/26/2016' , '%m/%d/%Y')
结果是一个合适的日期值。(注意记住使用正确的模式)
使用正确的模式意味着如果你使用26.10 THN,你应该使用
str_to_date('26.10' , '%d.%m')
由于mysql datetime (yyyy-mm-dd HH:MM:SS)的顺序与输入数据的顺序相反,因此您必须进行一些安排。但是基本上是的,你可以把它当作一个字符串。例如:
SELECT * FROM `mytable` WHERE `date` LIKE "____-1_-26%"
下划线字符充当单个通配符,而%可能充当多个通配符。
更进一步:如果你的输入数据在你的PHP环境中是$input,你应该首先把它分解成日部分,月部分和年部分,然后从那里构建你的MySql查询字符串,像这样:"... `date` LIKE "' . $yearpart . '-' . $monthpart . '-' . $daypart . '%"'
作为起点
SELECT * FROM
mytable
WHERE DATE_FORMAT(date
, '%d %m %Y') LIKE '$input'
你只需要在$input后面加上%符号。我假设PHP context:
'... LIKE "' . $input . '%"'