9

我有多行itemDate(时间戳),如下所示:

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-04-08 时,我得到了两行。

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

当我从该表查询时,我需要的结果应该如下所示:

itemDate
2013-04-09
2013-04-08
4

3 回答 3

19

那是因为这些价值观不同。如果您尝试按日期执行此操作,请使用以下DATE()功能:

SELECT DISTINCT(DATE(itemDate)) FROM item;
于 2013-04-10T01:54:40.973 回答
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

于 2013-04-10T01:57:55.790 回答
1

在我这边,我尝试了上面建议的不同选项,但我使用的 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

于 2014-05-30T08:52:30.073 回答