Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
比较mysql中的两个时间戳_Mysql_Vb.net_Timestamp - Fatal编程技术网

比较mysql中的两个时间戳

比较mysql中的两个时间戳,mysql,vb.net,timestamp,Mysql,Vb.net,Timestamp,我从mysql中检索了两个datetime变量。 一个等于“now()”,另一个表示上一次更改行的时间 我需要比较这两个datetime值以获得两者之间的差异 这就是我所尝试的(我从Mysql读取数据是由一个定制的web api处理的) 我的日期时间值是这样进来的 18/01/2016 10:53:00 18/01/2016 10:52:52 并且不会引发错误/异常,但不管差异如何,“timedifference”仅为1 我怀疑这与datetime的格式不是VB想要的有关,但我找不到任何东

我从mysql中检索了两个datetime变量。 一个等于“now()”,另一个表示上一次更改行的时间

我需要比较这两个datetime值以获得两者之间的差异

这就是我所尝试的(我从Mysql读取数据是由一个定制的web api处理的)

我的日期时间值是这样进来的

 18/01/2016 10:53:00
 18/01/2016 10:52:52
并且不会引发错误/异常,但不管差异如何,“timedifference”仅为1

我怀疑这与datetime的格式不是VB想要的有关,但我找不到任何东西可以将mysql转换为VB datetimes,反之亦然


任何方向都会被告知!提前谢谢

相反,尝试减去两个日期时间值,如下所示,这将返回一个
时间戳
值。顺便说一句,您当前的日期时间格式是
dd/mm/yyyy
,我认为应该是
mm/dd/yyyy

Dim timedifference As TimeStamp = nowtime - thishostlastpoll

我怀疑这与datetime的格式不是VB想要的有关,但我找不到任何东西可以将mysql转换为VB datetime,反之亦然。

你可能会对一两件事感到困惑

首先,日期没有格式。格式是计算机(或您编写的计算机代码)向用户显示日期的方式。净(不是VB本身)
DateTime
是一个值,表示存储为非常大的数字的时间点。由于对我们大多数人来说,
635886720000000000
(今天的日期)没有什么意义,因此
DateTime
类型以常规格式表示

MySql
数据提供程序对象完全能够将数据从Net
DateTime
值来回转换为,但是MySql需要根据列定义存储数据

真正的问题可能在这里:

Dim timedifference As Integer=DateTime.Compare(nowtime,thishostlastpoll)
给定变量名称和显示方式,您可能会对
DateTime.Compare
的作用感到困惑。发件人:

比较DateTime的两个实例并返回一个整数,该整数指示第一个实例是早于第二个实例、与第二个实例相同还是晚于第二个实例

给定定义为
TIMESTAMP(3)
并读入NET
DateTime
vars的两个MySql列:

Console.WriteLine(“A是{0}”,dtA)
WriteLine(“B是{0}”,dtB)
Write(“因此比较是{0}”,DateTime.Compare(dtA,dtB))
选择案例日期时间。比较(dtA、dtB)
病例<0'即-1
Console.WriteLine(“dtA更早”)
大小写>0
Console.WriteLine(“dtB更早”)
案例0
Console.WriteLine(“dtA和dtB完全相等”)
结束选择
结果:

A:2016年1月18日上午8:39:51
B是2016年1月18日上午8:40:11
比较为-1,因此dtA更早


关于
DateTime.Compare
有一点让人困惑的是,结果指示较早/较小的值,而大多数其他
Compare
方法指示较大的值。

我明白了……类型为“System.TimeSpan”的错误6值无法转换为“Date”。“我如何更改从中接收到的格式?”mysql?此外,我还使用了“datetime”和“date”,因为使用“timestamp”会给我“Type”时间戳没有定义“它不是”格式“日期没有格式。一旦您将这两个值放入DateTime变量中,它们就是Net DateTime变量,如果Net不喜欢它们的某些方面,您将得到一个错误。如果我比较这两个值,效果很好。你能告诉我们DBreadsql中使用的数据类型是对处理所有数据库交互的PHPAPI的http调用吗。我想我会使用滴答计数器,而不是比较实际时间,然后一起否定这个问题:)你有多准确。。。。我留下的“1”实际上是正确的,我误解了函数。谢谢你指出这一点。我有另一种方法来实现我需要的,现在正在实施。
Dim timedifference As TimeStamp = nowtime - thishostlastpoll