7

执行这个命令给我带来了以下结果(所有列中的所有日期,所以它本质上与 SELECT date 没有区别):

SELECT DISTINCT date FROM daily ORDER BY date DESC

2013-02-12 16:40:52
2013-02-06 11:48:49
2013-02-06 11:36:41
2013-02-06 11:35:59
2013-02-04 19:38:12
2013-02-04 18:12:30
2013-02-04 09:58:41
2013-02-04 09:43:01
2013-02-04 09:35:51
2013-02-04 09:30:22
2013-02-04 09:24:57
2013-02-04 09:21:09
2013-02-04 08:50:13

我需要的:

2013-02-12
2013-02-06
2013-02-04
  1. 有什么方法可以更改我的日期表并将其转换为 YYYY-MM-DD 吗?

  2. 如果没有,有没有办法仅根据日期选择不同的日期?

4

7 回答 7

12
mysql> select DATE_FORMAT(Current_Timestamp, '%c %d %Y') from dual;
+--------------------------------------------+
| DATE_FORMAT(Current_Timestamp, '%c %d %Y') |
+--------------------------------------------+
| 2 12 2013                                  |
+--------------------------------------------+
1 row in set (0.01 sec)

mysql> 

当然你会使用你的“日常”表。

mysql> select DATE_FORMAT(Date, '%c %d %Y') from daily;

或者你可能想要

mysql> select * from daily group by DATE_FORMAT(Date, '%c %d %Y');
于 2013-02-13T00:09:47.117 回答
2

试试这个:

SELECT DISTINCT(CONVERT(VARCHAR, CONVERT(DATETIME,[DATE]),23)) AS DT  
FROM DAILY
ORDER BY DT ASC
于 2013-06-14T07:54:02.270 回答
1

它非常简单地使用 DATE() 函数。

例子:

SELECT DISTINCT DATE(date)
    FROM daily
    ORDER BY date
    DESC
于 2020-07-31T08:37:16.617 回答
1

所以我刚刚在 sgeddes 答案中添加了一小部分,这对我来说很接近工作,但我必须作为:AS date_change 以便我可以列出这些值。

$sql = "SELECT DISTINCT DATE_FORMAT(yourdate, '%Y-%m-%d') as date_change FROM 
daily ORDER BY (yourdate) DESC LIMIT 10";
$result = $conn->query($sql);

if ($result->num_rows > 0) {

 // output data of each row
 while($row = $result->fetch_assoc()) {
 $test = $row['date_change'];
    echo $test.'<br>';



  }

} else {
echo "0 results";
}
于 2019-03-29T14:21:33.080 回答
1

我发现在 > N 百万的大型数据集上,按 DATE_FORMAT 分组可能比使用慢 10-20%;

 GROUP BY someid,year(date),month(date),day(date)
于 2016-02-12T10:27:23.927 回答
0

对于 MySQL,您可以使用DATE(date)仅返回日期。如果要格式化,请使用DATE_FORMAT

SELECT DISTINCT DATE_FORMAT(yourdate, '%Y-%m-%d') 
FROM daily ORDER BY DATE(yourdate) DESC

您无法更改数据库存储这些值的方式。

这是小提琴:http ://sqlfiddle.com/#!2/f50527/6

于 2013-02-13T00:09:36.970 回答
0

在访问数据库中

SELECT DISTINCT Format(date, 'Short Date')
  FROM daily
 ORDER BY Format(date, 'Short Date') DESC;
于 2017-05-11T03:37:08.040 回答