You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MariaDB Connect引擎透视含日期值表格时日期显示异常求助

MariaDB Connect引擎Pivot表日期显示为1970-01-01问题排查

我在MariaDB 10.5中,需要将InnoDB引擎下的长格式training表,通过Connect引擎的pivot表类型转换为宽格式pivTraining表,统计每个用户对应各program的最新trainingDate(使用MAX聚合)。

执行的SQL语句

CREATE TABLE pivTraining 
ENGINE=connect TABLE_TYPE=pivot
OPTION_LIST='PIVOTCOL=programID,FNCCOL=trainingDate,FUNCTION=MAX,USER=root,PASSWORD=######' 
SRCDEF='SELECT userName, CONCAT(''Program_'',programID) AS programID, MAX(trainingDate) AS trainingDate FROM training GROUP BY userName,programID';

期望结果

MariaDB [db]> select * from pivTraining;                                                                                                                                                                                         
+----------+------------+------------+
| userName | Program_1  | Program_2  |
+----------+------------+------------+
| kennjoh  | 2023-10-04 | NULL       |
| kennjoh3 | 2023-12-21 | 2022-12-05 |
| kennjoh4 | 2023-12-19 | NULL       |
+----------+------------+------------+

实际结果

实际查询得到的所有日期均为1970-01-01:

MariaDB [db]> select * from pivTraining;                                                                                                                                                                                         
+----------+------------+------------+
| userName | Program_1  | Program_2  |
+----------+------------+------------+
| kennjoh  | 1970-01-01 | 1970-01-01 |
| kennjoh3 | 1970-01-01 | 1970-01-01 |
| kennjoh4 | 1970-01-01 | 1970-01-01 |
+----------+------------+------------+

推测原因与已尝试方案

推测是Connect引擎处理日期类型时出现数值为0的情况导致。已尝试移除MAX函数、添加DATE_FORMAT参数、查阅官方文档等方法,均未解决问题。

相关表结构

training表结构

MariaDB [db]> describe training;
+----------------+------------------+------+-----+---------+----------------+
| Field          | Type             | Null | Key | Default | Extra          |
+----------------+------------------+------+-----+---------+----------------+
| tid            | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| userName       | varchar(255)     | NO   |     | NULL    |                |
| programID      | int(10) unsigned | NO   |     | NULL    |                |
| trainingDate   | date             | YES  |     | NULL    |                |
| trainingExpiry | int(10) unsigned | NO   |     | 365     |                |
+----------------+------------------+------+-----+---------+----------------+

pivTraining表结构

MariaDB [db]> describe pivTraining;
+----------+--------------+------+-----+---------+-------+
| Field    | Type         | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| userName | varchar(255) | NO   |     | NULL    |       |
| 1        | date         | YES  |     | NULL    |       |
| 2        | date         | YES  |     | NULL    |       |
+----------+--------------+------+-----+---------+-------+

中间验证查询(结果正确)

MariaDB [db]> SELECT userName, 
CONCAT(''Program_'',programID) AS program, 
MAX(trainingDate) AS trainingDate, 
MAX(ADDDATE(trainingDate, INTERVAL trainingExpiry DAY)) AS expiryDate 
FROM training 
GROUP BY userName, programID;
+----------+-----------+--------------+------------+
| userName | program   | trainingDate | expiryDate |
+----------+-----------+--------------+------------+
| kennjoh  | Program_1 | 2023-10-04   | 2024-10-03 |
| kennjoh3 | Program_1 | 2023-12-21   | 2024-12-20 |
| kennjoh3 | Program_2 | 2022-12-05   | 2023-12-05 |
| kennjoh4 | Program_1 | 2023-12-19   | 2024-12-18 |
+----------+-----------+--------------+------------+

恳请熟悉Connect引擎的人士帮忙排查问题原因。

内容的提问来源于stack exchange,提问作者drJPK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 20:14:52