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

Posted

tags:

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

参考技术A 1.mysql获得当前时间戳函数:current_timestamp,current_timestamp()mysql>selectcurrent_timestamp,current_timestamp();+---------------------+---------------------+|current_timestamp|current_timestamp()|+---------------------+---------------------+|2008-08-0923:22:24|2008-08-0923:22:24|+---------------------+---------------------+2.MySQL(Unix时间戳、日期)转换函数:unix_timestamp(),unix_timestamp(date),from_unixtime(unix_timestamp),from_unixtime(unix_timestamp,format)下面是示例:selectunix_timestamp();--1218290027selectunix_timestamp('2008-08-08');--1218124800selectunix_timestamp('2008-08-0812:30:00');--1218169800selectfrom_unixtime(1218290027);--'2008-08-0921:53:47'selectfrom_unixtime(1218124800);--'2008-08-0800:00:00'selectfrom_unixtime(1218169800);--'2008-08-0812:30:00'selectfrom_unixtime(1218169800,'%Y%D%M%h:%i:%s%x');--'20088thAugust12:30:002008'3.MySQL时间戳(timestamp)转换、增、减函数:timestamp(date)--datetotimestamptimestamp(dt,time)--dt+timetimestampadd(unit,interval,datetime_expr)--timestampdiff(unit,datetime_expr1,datetime_expr2)--请看示例部分:selecttimestamp('2008-08-08');--2008-08-0800:00:00selecttimestamp('2008-08-0808:00:00','01:01:01');--2008-08-0809:01:01selecttimestamp('2008-08-0808:00:00','1001:01:01');--2008-08-1809:01:01selecttimestampadd(day,1,'2008-08-0808:00:00');--2008-08-0908:00:00selectdate_add('2008-08-0808:00:00',interval1day);--2008-08-0908:00:00MySQLtimestampadd()函数类似于date_add()。selecttimestampdiff(year,'2002-05-01','2001-01-01');---1selecttimestampdiff(day,'2002-05-01','2001-01-01');---485selecttimestampdiff(hour,'2008-08-0812:00:00','2008-08-0800:00:00');---12selectdatediff('2008-08-0812:00:00','2008-08-0100:00:00');--7MySQLtimestampdiff()函数就比datediff()功能强多了,datediff()只能计算两个日期(date)之间相差的天数。 参考技术B 一、FROM_UNIXTIME函数简介
1、函数作用:将MYSQL中以INT(11)存储的时间以"YYYY-MM-DD"格式来显示。
2、语法:FROM_UNIXTIME(unix_timestamp,format)
返回表示 Unix 时间标记的一个字符串,根据format字符串格式化。format可以包含与DATE_FORMAT()函数列出的条目同样的修饰符。
根据format字符串格式化date值。
下列修饰符可以被用在format字符串中:

3、例子:

SELECT FROM_UNIXTIME(1500109248, '%Y-%m-%d %H:%i:%S')

返回:2017-07-15 17:00:48本回答被提问者采纳

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

【中文标题】LSTM - 使用 deltaTime 作为功能?如何处理不规则的时间戳?【英文标题】:LSTM - Use deltaTime as a feature? How to handle irregular timestamps? 【发布时间】:2020-02-14 13:58:11 【问题描述】:

我正在尝试创建一个用于数据序列分类的 LSTM。

我将使用的每个训练输入的数据结构是:

[[
[deltaX,deltaY,deltaTime],
[deltaX,deltaY,deltaTime],...
],class]

其中 deltaX 和 deltaY 反映了在给定时间 deltaTime 内 X 和 Y 的变化。 deltaTime 每次都不一样,它可以从 40 毫秒到 50 毫秒到有时 1000 毫秒不等。末尾的“类”是二分类,可以是 0 也可以是 1。

问题 1(常规 LSTM):如果我要使用基本 LSTM(Keras LSTM),是否应该将 deltaTime 作为特征输入?


我知道 LSTM 有时间戳,但它们固定为一个给定的长度。我仔细研究了 PhasedLSTM,但它们似乎更多地适用于 2 个移动的周期性时间框架。


我遇到的唯一适合的就是 Time-Aware LSTM。

问题 2(时间感知 LSTM):您会推荐他们解决我的问题吗?如果是这样:是否有 keras 实现,因为我之前没有使用过 tensorflow。

【问题讨论】:

【参考方案1】:

如果我理解正确,deltaTime 是数据集中两个连续元素之间经过的时间间隔,不同元素的增量不同。

    一般而言,LSTM 会期望顺序元素之间的持续时间有一定的规律性。 所以回答你的第一个问题:你可能应该,因为它不是实时序列,你也可以尝试其他 NN 类型。 “可能”,因为当您检查测试集的精度时,无论有无此功能,您都会得到真正的答案。

    T-LSTM 是一个模型(实际上是一个修改您的训练集并以不同方式训练常规 LSTM 的代码),它是针对与您的情况完全相同的案例而提出的。它已经两年没有更新了,可能需要进行一些修改才能支持 TF2。 Keras 本身就是高端 API,运行在包括 TensorFlow 在内的多个框架之上。您可以使用它并通过它运行任何 TF 功能,尽管我建议使用 tf.keras

作为旁注,我建议您查看时间延迟神经网络。 TDNN 在 TensorFlow、PyTorch 和可能的许多其他框架中实现。

【讨论】:

感谢您的回答!看来 TDNN 是我正在寻找的东西!虽然我在 TensorFlow 和 PyTorch 中都找不到任何官方实现。你能提供一个链接或什么吗?在 1. 你建议其他类型的 NN - 你只是指 TDNN 吗?您还会建议哪些其他类型? pytorch 有几个流行的实现(不是官方的,但众所周知):github.com/SiddGururani/Pytorch-TDNN 和最近的github.com/jonasvdd/TDNN。至于 TensorFlow,您可以使用步幅为 1 的 1-d CNN。查看 Alan Lockett 的解释:quora.com/…【参考方案2】:

鉴于您的输出只是一个二进制变量,我不确定是否值得在问题上投入那么多技术机器

几个选择:

    将数据转换为一组定期采样的x,y 坐标。只需选择一组“好的”时间并适当地插入位置变化(增量函数将是最简单的,或者你可以做线性,或者更具体到你的问题)。然后,您可以将此工程功能与更多种类的模型一起使用,例如简单的 CNN

    高斯过程回归可以直接处理此类数据,但与 NN 的模型非常不同

【讨论】:

感谢您的回答!虽然这不是我想要的。 1.会操纵数据。这仅在 deltaX,Y 仅取决于 deltaTime 时才有效。高斯过程回归将分离这两个类,尽管它无法学会依赖特征上下文进行分离。

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

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

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

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

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

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

如何处理未提交的更改