2011-04-18 110 views
0

我正在使用一个表格,我无法更改结构....现在有一个包含时间戳记的varchar列。现在我需要选择时间戳转换为当前日期或指定日期的记录。PHP mysql:如何为今天或特定日期选择记录?

任何帮助?

+1

使用什么日期格式 – Gowri 2011-04-18 05:53:22

+0

字符串,现在使用php now() – Bluemagica 2011-04-18 05:54:23

+0

您可以在那里粘贴一行那一列,所以我们知道格式化的时间戳是什么格式? – lobster1234 2011-04-18 05:56:48

回答

0

首先你不应该存储在MySQL数据库与VARCHAR领域的最新信息。而是使用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'"; 

执行这一点,你要善于

0

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

+0

这不包括时间戳 – Wes 2011-04-18 05:53:57

+0

@他他没有时间戳 - 它是一个存储时间戳的varchar。根据他的应用程序定义的时间戳,它可以是YYYY-MM-DD或MM-DD-YYYY。 – lobster1234 2011-04-18 05:55:27

+0

我可以看到基于OP的坏帖子,你可能会认为他确实有日期字段。当我看到时间戳,意味着它是日期和时间。 – Wes 2011-04-18 06:22:15

0

试试这个

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') 
+0

这里错了什么! – Gowri 2011-04-18 05:59:31

+0

+1:我同意 - 为什么这是downvoted? OP缺乏有关日期的详细信息,但这是正确的。 – 2011-04-18 06:14:39

+0

他有一个varchar字段,所以date(your_field)将不起作用 – Wes 2011-04-18 06:18:36