PHP mysql:如何选择今天或某一天的记录?

PHP mysql:如何选择今天或某一天的记录?,php,mysql,Php,Mysql,我正在使用一张无法改变结构的桌子。。。。现在有一个包含时间戳的varchar列。现在我需要选择时间戳转换为当前日期或指定日期的记录 有什么帮助吗 根据将日期存储为字符串的格式,使用函数解析出日期。然后,您可以使用它作为where子句的一部分来查询所需的数据。试试这个 select * from table where date(your_field)=CURDATE() 或具体日期 select * from table where date(your_field)=DATE_FORMAT(

我正在使用一张无法改变结构的桌子。。。。现在有一个包含时间戳的varchar列。现在我需要选择时间戳转换为当前日期或指定日期的记录


有什么帮助吗

根据将日期存储为字符串的格式,使用函数解析出日期。然后,您可以使用它作为where子句的一部分来查询所需的数据。

试试这个

select * from table  where date(your_field)=CURDATE()
或具体日期

select * from table where date(your_field)=DATE_FORMAT(2011-05-31 00:02:00, '%Y-%m-%d')

首先,您不应该在带有VARCHAR字段的mysql数据库中存储日期信息。而是使用DATETIME,这就是它的用途。我只能猜测您是如何将时间戳日期存储在数据库中的,但我假设它是以下格式:

YYYY-mm-dd hh:mi:ss (ie '2011-04-15 09:23:55')
您现在必须格式化输入,我假设它是一个时间对象,或者它是一个字符串,格式与数据库中的数据相同:

$yourdate = strftime("%Y-%m-%d", $input);
然后构造查询

query = "select * from table where substring(datecol, 1, 10) = '$yourdate'";

执行此操作,您应该很好

您使用的是什么日期格式?您可以将该列粘贴到其中,以便我们知道时间戳的格式是什么吗?这不考虑timestamp@Wes他没有时间戳,而是一个存储时间戳的varchar。根据他的应用程序对时间戳的定义,它可能只是YYYY-MM-DD或MM-DD-YYYY。我可以看到,根据OP的坏帖子,您可能会认为他确实有一个日期字段。当我看到时间戳时,这意味着它是日期加时间。+1:我同意——为什么投票被否决?OP缺少有关日期的详细信息,但这在其他方面是正确的。SQL语法无效。这是很小的缺失,但值得一提。对一些人来说,值得投下一票而且,它可能效率很低。无论列是否被索引,查询都需要执行完整的表扫描以查找匹配的行。