2010-09-01 128 views
0

我有一大堆的数据库中的条目,这是我想通过日期排序的,但日期格式看起来像这样Y-m-d g:i:s,我怎么可能通过日期搜索的数据库,而不是约会时间?订购一个MySQL查询结果基于日期

+0

$ SQL = “SELECT CAST(” $日期 “为DATETIME作为sortdate FROM表顺序由sortdate ASC。)”; – 2010-09-01 12:36:54

回答

4

如果它是一个时间字段订购

ORDER BY date_field ASC 

对于搜索为此做

WHERE DATE(date_field) = '2010-05-08' 

如果它是一个varchar类型字段尝试寻找STR_TO_DATElink

0

这很简单。将您的日期,正确格式第一,这是YMD H:我:■

+0

它显示了在数据库中YMD H:I:S,但我对我怎么可以去根据日期查询项,并不能确定没有日期时间,像这样:“SELECT * WHERE日期时间='2010例如,“05-08”就是这种可能性吗?过滤 – Odyss3us 2010-09-01 12:21:50

+0

@kielie如果它已经以正确的格式,使用日期()函数:'WHERE日期(日期时间)=“2010-05-08”“'而且应该与排序没问题已经 – 2010-09-01 12:26:03

-1

你可以这样做:

ORDER BY UNIX_TIMESTAMP(your_date) 

your_date日期需要先转换为YMD H:我:■

+0

海报没有提到时间戳用法在表日期已经YMD H:我:■ – Jakub 2010-09-01 12:25:27

+0

如果它被转化为YMD H:I:S,没有必要使用时间戳排序YMD H:我:■将责令没事这就是目的。这种格式 – 2010-09-01 12:27:18

0

这里是一个例子

$sql="SELECT cast(".$date." AS datetime) as sortdate FROM table order by sortdate ASC"; 

$sql="SELECT cast(DateColumnName AS datetime) as sortdate FROM table order by sortdate ASC"; 
1
select * form table where date(datetime) = '2010-05-08'