0

我有一个称为dispatchdateVARCHAR(255) 的列。它以“12/06/2013”​​格式存储日期。(日/月/年)

我知道我应该使用更好的领域,但我仍然是新手/正在学习 MYSQL 和 PHP。它仅在本地 PC 上用于测试等....

在我的页面上,我有一个执行基本“从表中选择 *”并列出行的查询。

我想重新定义查询,以便我可以输入日期范围来缩小我的列表。

我目前正在使用...

mysql_connect('localhost','root','');
mysql_select_db('operations');
$result = mysql_query("SELECT * FROM dispatch");

我假设我必须使用 STR_TO_DATE 将其从 varchar 转换为日期格式。但是 %d/%m/%Y 显示为 '2013-06-12' 而不是 '12-06-2013'。

如何使用 PHP 构建查询,SELECT STR_TO_DATE( dispatchdate, '%d/%m/%Y' )然后输入要搜索的条件(例如 01/07/13 -> 31/07/13)

4

1 回答 1

0

显然,您希望以您正在存储的字符格式检索它。所以,不要在select. 只需在where子句中进行转换。例如,要获取上周的行:

SELECT *
FROM dispatch
where STR_TO_DATE( dispatchdate, '%d/%m/%Y' ) >= adddate(now(),  - 7)
于 2013-07-17T00:55:12.117 回答