如何处理mysql中的时间戳读取问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何处理mysql中的时间戳读取问题相关的知识,希望对你有一定的参考价值。

DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。语法
DATE_FORMAT(date,format)
date 参数是合法的日期。format 规定日期/时间的输出格式。
可以使用的格式有:
格式
描述
%a
缩写星期名

%b
缩写月名

%c
月,数值

%D
带有英文前缀的月中的天

%d
月的天,数值(00-31)

%e
参考技术A 处理mysql字段的读取问题主要注意以下几点:
1、如果是直接在mysql query 语句里进行了日期的转换(from_unixtime())的话,请注意mysql默认的时区,timezone
2、读取出int时间戳在程序里处理的使用,也要注意程序内当前时区

使用 MySQL 的 Grafana 仪表板:我应该如何处理“%Y%m%d%H%i%s”的时间戳以用作面板的时间列?

【中文标题】使用 MySQL 的 Grafana 仪表板:我应该如何处理“%Y%m%d%H%i%s”的时间戳以用作面板的时间列?【英文标题】:Grafana dashboard using MySQL: how should I deal with timestamp of "%Y%m%d%H%i%s" to use as time column of panel? 【发布时间】:2021-09-04 18:59:24 【问题描述】:

我想使用 Grafana 仪表板将我的 MySQL 数据库表可视化为每小时图表。我正在使用的表具有以下属性,未提及的未使用的属性包括 PK:

SERVER_NAME varchar(250)
STAT_TYPE int(11) 
STAT_DTM varchar(14) 
CPU_MAX_USAGE int(11) 
MEMORY_MAX_USAGE int(11) 

重要的是STAT_DTM。它的格式是"%Y%m%d%H%i%s",例如"20210621090000"; 2021 年 6 月 21 日 09:00:00。我希望这是图表的 X 轴。 Grafana 指南说:

返回名为 time 或 time_sec (UTC) 的列,作为 unix 时间戳或 任何 sql 本机日期数据类型。您可以使用下面的宏。

所以我输入了unix_timestamp(date_format(str_to_date(substr(stat_dtm, 1, 10),'%Y%m%d%H'), '%Y-%m-%d %H:00:00')),但弹出了一个错误说db query error: query failed - please inspect Grafana server log for details

select
    unix_timestamp(date_format(str_to_date(substr(stat_dtm, 1, 10),'%Y%m%d%H'), '%Y-%m-%d %H:00:00')) as 'time',
    CPU_MAX_USAGE,
    MEMORY_MAX_USAGE
from lcop.tb_stat_os_day
where stat_type = 60 and server_name = 'LDFSWAS1'

The Panel I'm currently working on

The result of the query above

如何正确设置时间戳并显示图表?不幸的是,无法修改表架构,如果需要,我可以提供任何其他信息。提前致谢。

【问题讨论】:

" .. unix 时间戳或任何 sql 本机日期数据类型" 在我看来它不必是 unix 时间戳? @FaNo_FN 是的,所以我也尝试了date_format(str_to_date(stat_dtm, '%Y%m%d%H%i%s'), '%Y%m%d%H%i%s'),但我认为这个不太好用 实际上,使用该功能,您将使用 STR_TO_DATE 将 '20210621090000' 转换为 '2021-06-21 09:00:00' 然后使用 @987654333 将其转换回 '20210621090000' @..see here 【参考方案1】:

让我们在那里简化您的类型转换:

SELECT '20210621090000' as `src`,
       UNIX_TIMESTAMP(STR_TO_DATE('20210621090000', '%Y%m%d%H%i%s')) as `dts`

STR_TO_DATE() 函数可以被赋予完整的格式,然后可以被赋予UNIX_TIMESTAMPSUBSTR()DATE_FORMAT() 没有必要让事情变得更困难??

【讨论】:

谢谢哥们,我走得太远了。这就像我想要的那样工作,而且要短得多。

以上是关于如何处理mysql中的时间戳读取问题的主要内容,如果未能解决你的问题,请参考以下文章

如何处理mysql中的时间戳读取问题

使用 MySQL 的 Grafana 仪表板:我应该如何处理“%Y%m%d%H%i%s”的时间戳以用作面板的时间列?

Powershell - 如何处理非时间戳日志文件条目,包括空行

如何处理谷歌表格脚本中的重复项?

LSTM - 使用 deltaTime 作为功能?如何处理不规则的时间戳?

如何处理未提交的更改