繁体   English   中英

MySQL日期搜索MM / DD / YYYY到MM / DD / YYYY

[英]MySQL Date Search MM/DD/YYYY to MM/DD/YYYY

我在MySQL中有一个表,如下所示:

date        |storenum   |views 
-------------------------------
08/21/2009  |42         |3  
-------------------------------
08/22/2009  |43         |1    
-------------------------------
08/21/2009  |43         |4  
-------------------------------
08/22/2009  |42         |22
-------------------------------

我知道这是一种非常规的日期格式,但是为了易于使用,我使用它而不是YYYY-MM-DD。 但是我必须搜索该数据库以获取两个日期之间的所有“查看记录”。 一般来说,它可以工作,但是当我从2009年1月1日到2010年1月1日搜索时,没有任何结果。

有没有人有什么建议? 欢迎进行建设性的批评。 谢谢!

老实说,更改日期存储方式。 但是,要使用现有功能,您可以考虑使用STR_TO_DATE()将它们转换为MySQL可以使用的日期。

您提到易用性-我认为您现在要解决的情况是“不太易用”的一个示例:)。

我会坚持使用MySQL中日期的默认格式

yyyy-mm-dd h:i:s //php's date formatting 

并使用DATE字段。 这将解决日期搜索/插入问题。 尽管您需要更改一些代码来修复显示日期。

您的date字段类型是什么? 为了正确使用,应该将它设置为datedatetime ,然后看看所拥有的内容就像将dates存储在varchar中一样。 我对吗?

这也具有可以添加索引,然后在mysql范围内搜索的优势

我的建议是获取用户输入的任何内容。 然后将其转换为mysql日期格式以进行搜索

就像是:

<?php

$mysql_time = date('Y-m-d H:m:s' strotime('05/11/2008'));

$query = sprintf("SELECT * FROM sometable < '%s'", $mysql_time);

?>

尝试使用“ yyyyMMdd”格式的搜索,MySql肯定会识别它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM