【问题标题】:Get the value of the earliest and the latest date in mysql获取mysql中最早和最晚日期的值
【发布时间】:2021-09-29 18:57:25
【问题描述】:

我有一个表格,显示客户选择的交货日期,但这可能会更改,并且该表格会为每次更改添加一条新记录,因此我想要一个表格,其中包含他们选择的第一个值和他们选择的最后一个值。

表格是这样的:

user_id Day DateUpdate
1 Friday 2021/07/01
3 Sunday 2021/07/01
3 Tuesday 2021/07/15
4 Monday 2021/07/02
4 Wednesday 2021/07/18
5 Thursday 2021/07/12
7 Monday 2021/07/01
7 Wednesday 2021/07/16

而我想要的结果应该是这样的:

User_id first_day last_day
1 Friday Friday
3 Sunday Tuesday
4 Monday Wednesday
5 Thursday Thursday
7 Monday Wednesday

我应该使用什么功能?请问你能帮帮我吗?非常感谢!

【问题讨论】:

  • 您想要结果表中的日期或日期吗?
  • 请确认您的 DateUpdate 列日期格式与您的示例 (YYYY/MM/DD) 完全相同,或者它实际上是 YYYY-MM-DD 的标准 DATE 数据类型格式。这很重要,因为如果 date manipulation functions 不是标准的 date datatype,则不能直接使用它。

标签: mysql date mindate


【解决方案1】:

选择表格

MySQL 服务器不支持 SELECT ... INTO TABLE Sybase SQL 扩展。相反,MySQL Server 支持 INSERT INTO ... SELECT 标准 SQL 语法,这基本上是一样的。

INSERT INTO tbl_temp2 (user_id,first_day,last_day)
SELECT tbl_temp1.user_id,tbl_temp1.first_day,tbl_temp1.last_day
FROM tbl_temp1 
WHERE <Need to add your selection criteria here>;

Reference doc

【讨论】:

    【解决方案2】:

    首先,使用DAYNAME()函数实际上可以找到日期名称,因此实际上不需要将其存储在另一列中。但无论如何,试试这段代码。

    SELECT 
    user_id,
    DAYNAME(MIN(DateUpdate)) as first_day,
    DAYNAME(MAX(DateUpdate)) as last_day
    FROM tbl
    GROUP BY user_id
    

    如果您只想要日期,也可以删除 DAYNAME() 函数。

    【讨论】:

      猜你喜欢
      • 2021-06-19
      • 1970-01-01
      • 2020-06-13
      • 2021-06-29
      • 2010-10-21
      • 1970-01-01
      • 2017-02-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多