【问题标题】:MySQL complex merge of two tables with different date formatMySQL复杂合并两个具有不同日期格式的表
【发布时间】:2013-09-27 09:46:04
【问题描述】:

我在这里有一个这样的 MySQL 表:http://sqlfiddle.com/#!2/4ae5c/15

另一个与API不同:http://sqlfiddle.com/#!2/b7946e/1

我想要的是这样的结果(每周):

+----------+----------+----------+------------+------------+------------+
| date     | action   | position | name       | day        | ID         |
+----------+----------+----------+------------+------------+------------+
|17.06.2013| holiday  | home     | Winkler,Mr.| Monday     | 0          |
|18.06.2013| holiday  | home     | Winkler,Mr.| Tuesday    | 1          |
|19.06.2013| work     | NYC      | Winkler,Mr.| Wednesday  | 2          |
|20.06.2013| work     | NYC      | Winkler,Mr.| Thursday   | 3          |
|21.06.2013| work     | NYC      | Winkler,Mr.| Friday     | 4          |
|22.06.2013| work     | NYC      | Winkler,Mr.| Saturday   | 5          |
|23.06.2013| weekend  | home     | Winkler,Mr.| Sunday     | 6          |
+----------+----------+----------+------------+------------+------------+

你们中有人有过这样的经历吗?

由于第二个表中缺少日期,我无法正确合并它们。

【问题讨论】:

    标签: mysql date merge tabular


    【解决方案1】:

    试试这个,我加入了你的表格并注意到DATETIME 字段的类型为text,这太糟糕了,无法将日期保存为文本,这应该是datedatetime,但是我使用了@ 987654321@ 转换为日期,在下面的查询中,我使用了mydates 的左连接,还使用了 CASE 来制作自定义条件,您必须提供一个日期,以便获取该日期的 WEEK 的记录

    SELECT md.`mydate`,
    (CASE WHEN g.`ACTION` IS NULL  &&  DAYNAME(md.`mydate`) ='Sunday'  THEN 'Weekend' 
    WHEN g.`ACTION` ='0' THEN g.`ACTIONTEXT` 
    WHEN  g.`ACTION` IS NULL THEN 'holiday' 
    ELSE 'holiday' END) `action` 
    ,
    (CASE WHEN g.`POSITION` IS NULL THEN 'Home' ELSE g.`POSITION` END)`position` ,
    g.`DRIVERNAME`,DAYNAME(md.`mydate`),g.`ID`  FROM `mydates` md 
    LEFT JOIN `geoimportroot` g ON (md.`mydate`=  STR_TO_DATE(g.`DATETIME`, "%d.%m.%Y")  )
    WHERE WEEK(md.`mydate`)= WEEK('2013-06-17')
    

    Here is your fiddle

    我希望这就是你要找的东西

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-15
      • 1970-01-01
      • 2021-02-28
      • 2020-12-01
      相关资源
      最近更新 更多