如何处理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_TIMESTAMP
。 SUBSTR()
或 DATE_FORMAT()
没有必要让事情变得更困难??
【讨论】:
谢谢哥们,我走得太远了。这就像我想要的那样工作,而且要短得多。以上是关于如何处理mysql中的时间戳读取问题的主要内容,如果未能解决你的问题,请参考以下文章
使用 MySQL 的 Grafana 仪表板:我应该如何处理“%Y%m%d%H%i%s”的时间戳以用作面板的时间列?
Powershell - 如何处理非时间戳日志文件条目,包括空行