【发布时间】:2013-07-17 00:52:11
【问题描述】:
我有一个名为 dispatchdate 的列,它被存储为 VARCHAR(255)。它以“12/06/2013”格式存储日期。 (DD/MM/YYYY)
我知道我应该使用更好的领域,但我还是新手/正在学习 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'。
如何使用SELECT STR_TO_DATE( dispatchdate, '%d/%m/%Y' ) 在 PHP 中构建查询,然后输入要搜索的条件(例如 01/07/13 -> 31/07/13)
【问题讨论】:
-
“我知道我应该使用更好的字段,” - 绝对应该。首先将您的日期/时间值存储在
DATETIME字段中。 -
如果您能稍微扩展一下,并解释我如何做到这一点,我们将不胜感激......
-
创建表时,将
DateTime指定为字段类型,而不是varchar。然后就可以直接在日期上使用MySQL的日期函数了,不用先做转换。 -
顺便说一句 - 有人会告诉你:PHP 的
mysql函数已被弃用。你不应该使用它们。请改用mysqli或PDO。 -
是的,我知道这一点,我仍在阅读它,以及 sql 注入等。这只是一个本地测试数据库。 -如何将包含大量数据的现有表从 varchar255 转换为 datetime 而不会丢失所有数据并重新开始?