2013-04-10 29 views
3

我有一个像下面itemDate(时间戳)多行:选择不同的时间戳作为DD/MM/YYYY MySQL的

itemDate 
2013-04-09 17:24:31 
2013-04-09 10:24:31 
2013-04-08 12:20:30 

当我使用SELECT DISTINCT(itemDate) FROM item;,我得到两行2013年4月8日。

我想要得到不同日期的日期(基于YYYY-MM-DD),忽略同一天的时间是否不同。

,我需要应该像下面,当我从该表查询结果:

itemDate 
2013-04-09 
2013-04-08 
+0

什么是列类型itemDate的? – Sebas 2013-04-10 01:54:38

+0

它是时间戳。 – kitokid 2013-04-10 01:57:28

回答

9

这是因为这些值是不同的。如果你想通过日期要做到这一点,然后用DATE()功能:

SELECT DISTINCT(DATE(itemDate)) FROM item; 
3

从对方的回答另一种方法是使用DATE_FORMAT()

SELECT DATE_FORMAT(itemDate, '%Y-%m-%d') ItemDate 
FROM Item 
GROUP BY DATE_FORMAT(itemDate, '%Y-%m-%d') 

http://www.sqlfiddle.com/#!2/bfaf5e/3

0

在我身边,我已经尝试了上面提出的不同选项,但是我使用的Sybase DB拒绝了我:

Error: Function 'DATE' not found. If this is a SQLJ function or SQL function, use sp_help to check whether the object exists (sp_help may produce a large amount of output). 

我的同事给了我这一点,并在这里工作确定

SELECT distinct(CONVERT(varchar(20), timestamp, 111)) FROM HistoOrder 

我用111,但你可以找到代码列表 http://www.w3schools.com/sql/func_convert.asp