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

Mariadb时间戳列拆分失败,求按小时统计目标账户页面浏览量方法

解决MariaDB自定义时间戳格式的小时提取与统计问题

问题根源

你的时间戳是dd/mm/yy 0:00这类非标准字符串格式,MariaDB的HOUR()、DATE_FORMAT()仅能处理合法的DATETIME/TIMESTAMP类型,直接传入字符串会返回NULL——必须先把这个字符串转成数据库能识别的日期时间类型。

具体解决方案

1. 转换时间字符串为标准日期类型

用STR_TO_DATE()函数匹配你的格式,指定格式串'%d/%m/%y %H:%i':

STR_TO_DATE(your_timestamp_col, '%d/%m/%y %H:%i')

格式串各部分对应:

  • %d:两位日(01-31)
  • %m:两位月(01-12)
  • %y:两位年(自动映射到2000-2099)
  • %H:24小时制小时(00-23)
  • %i:分钟(00-59)

2. 完成目标统计的完整SQL

替换实际的表名、列名和目标账户列表,即可得到你需要的统计结果:

SELECT
  HOUR(STR_TO_DATE(your_timestamp_col, '%d/%m/%y %H:%i')) AS `Hour`,
  COUNT(*) AS `# Total Pages Viewed by Target Accounts`
FROM your_table
WHERE account_id_col IN (1001, 1002, 1003) -- 替换为你的目标账户ID
GROUP BY `Hour`
ORDER BY `Hour`;

3. 验证转换有效性(可选)

如果担心存在格式不规范的时间字符串,可以先跑这个查询验证转换结果:

SELECT
  your_timestamp_col,
  STR_TO_DATE(your_timestamp_col, '%d/%m/%y %H:%i') AS converted_dt,
  HOUR(STR_TO_DATE(your_timestamp_col, '%d/%m/%y %H:%i')) AS hour
FROM your_table
LIMIT 10;

若有无效数据,可在统计时加WHERE STR_TO_DATE(your_timestamp_col, '%d/%m/%y %H:%i') IS NOT NULL过滤掉。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 09:30:13