相关疑难解决方法(0)

相当于mssql中mysql的Datetime2

mssql中mysql的Datetime2相当于什么?

mysql sql

4
推荐指数
1
解决办法
6968
查看次数

Magento 2 Collection Date过滤一小时

我有一个问题,我按日期过滤集合,并且期望得到的项目没有返回到集合中,但是,如果我打印出集合使用的SQL并针对我的数据库运行该SQL,则会返回该项目。

$from = new \DateTime($lsDate);
$orders = $this->_orderCollectionFactory->create()
        ->addFieldToSelect(['grand_total', 'created_at'])
        ->addAttributeToFilter('created_at', array('gteq' => $from->format('Y-m-d H:i:s')))
        ->addAttributeToFilter('customer_id',$customer->getId())
        ->setPageSize(10)
        ->setOrder('created_at', 'desc');

$from->format('Y-m-d H:i:s') // Lets say this is 2019-08-06 15:33:00
$this->logger->info(count($orders)); // This is 0
Run Code Online (Sandbox Code Playgroud)

如果我打印出生成的SQL,它看起来像这样:

SELECT `main_table`.`entity_id`, `main_table`.`grand_total`, `main_table`.`created_at` FROM `sales_order` AS `main_table` WHERE (`created_at` >= '2019-08-06 15:33:21')
Run Code Online (Sandbox Code Playgroud)

created_at应退回的订单日期为2019-08-06 15:34:00

如果我在数据库上运行上述查询,它将返回上面的一个顺序,但是正如您在我上面的代码中看到的那样,该集合为空。

如果我将订单日期更改为2019-08-06 16:34:21(未来一小时),则代码将返回包含一个项目的集合。看起来与时区有关吗?也许是DST(夏令时)?

编辑

这是有关$lsDate变量的更多信息。

$lsDate来自客户属性。我将日期存储为:

 $newDate = new \DateTime();
 $customer->setCustomAttribute('ls_start_date', $newDate->format('Y-m-d H:i:s'));
Run Code Online (Sandbox Code Playgroud)

并这样获取日期:

$lsDate = $customer->getCustomAttribute('ls_start_date')->getValue();
Run Code Online (Sandbox Code Playgroud)

php mysql datetime magento magento2

4
推荐指数
1
解决办法
476
查看次数

Java和MySQL中的时间戳和时区转换

我正在与位于与我的不同时区的服务器上开发一个带有MySQL数据库的Java应用程序,我正在尝试在我的数据库中使用DATETIME或TIMESTAMP.

在阅读问题后,我应该使用字段'datetime'还是'timestamp'?MySQL文档一样,我认为TIMESTAMP对我来说更好,因为它将值转换为UTC进行存储,然后返回当前时区进行检索.

此外,正如用户Jesper在线程中所解释的那样,java.util.Date对象在内部仅是UTC时间戳(即自Epoch以来的毫秒数),当您执行toString()时,它将根据您当前的时区显示.

对我来说,这看起来是一个好习惯:将日期时间存储为UTC时间戳,然后根据当前时区显示它们.

我就是这样做的,但后来我从Prepared Statements 的Java文档中找到了这个并且非常困惑:

void setTimestamp(int parameterIndex,Timestamp x,Calendar cal)抛出SQLException

使用给定的Calendar对象将指定参数设置为给定的java.sql.Timestamp值.驱动程序使用Calendar对象构造SQL TIMESTAMP值,然后驱动程序将该值发送到数据库.使用Calendar对象,驱动程序可以计算考虑自定义时区的时间戳.如果未指定Calendar对象,则驱动程序将使用默认时区,即运行应用程序的虚拟机的时区.

在此之前,我认为时间戳总是按UTC惯例.为什么人们想要一个本地化的时间戳而不是它的本地化表示?这对每个人来说都不会让人感到困惑吗?

这些转换如何运作?如果Java采用UTC时间戳并将其转换为任意时区,那么它如何告诉MySQL它在哪个时区呢?

MySQL不会假设此时间戳是UTC,然后检索不正确的本地化值吗?

java mysql timestamp

3
推荐指数
1
解决办法
3141
查看次数

如何在mysql的currrent_timestamp中增加1小时,这是默认值?

我有一个带有timestamp字段的数据库,默认情况下它使用当前时间戳,但是我在时间上有问题,例如,如果我在9:00插入行,它将需要8作为时间戳。

所以我的问题是默认情况下如何使该表中的current_timestamp增加一小时?我知道您可以用php来做,但是我更喜欢纯MySQL解决方案。

我的服务器时区有问题,但是我不想更改它,因为我担心这可能会影响服务器上的其他数据库,而我只想更改一个数据库中的时间戳。

mysql database timestamp

3
推荐指数
1
解决办法
4581
查看次数

时间戳与日期时间 MySQL

我需要将数据库从 SQL 转换为 MySQL,并且成功完成,但是,这个问题现在更适合 MySQL。

我注意到我可以将DateTime字符串插入到Timestamp列类型中,从我听说 Timestamp 接受 DateTime 或实际时间戳来看,这一切都很好,但是,我对 now 很好奇,"ON UPDATE CURRENT_TIMESTAMP"因为我把它放在了数据库的列,因为它只能用于Timestamp类型。这是否会使用不符合以下格式的时间戳: YYYY-MM-DD HH:MM:SS何时基于 进行更新CURRENT_TIMESTAMP

这将如何影响我从该列中提取的数据?

例如,当某些日期可能是数字时间戳,而其他日期可能是 DATETIME 格式时,从 TIMESTAMP 列获取当前日期/时间是否会很困难?我是否应该仅使用 DATETIME 作为此列的类型,而无法ON_UPDATE避免来自此处数据库的混合数据的问题?

php mysql datetime timestamp date

3
推荐指数
1
解决办法
7312
查看次数

UPDATE 列,其中 timediff 大于 5 分钟

我有一个表(会话),它有 2 列,我必须用于此查询。Session_Active(这是一个 tinyInt)和 Last_active(这是一个日期时间)。

我想创建一个查询,计算现在和所有表的 'Last_active' 之间的时间差,其中 'Session_Active' 为真,如果它大于 5 分钟,它应该更改 'Session_Active'。

这是我所拥有的部分:

SELECT timediff(now(), `Last_Active`) from sessions WHERE `Session_Active` = true;
Run Code Online (Sandbox Code Playgroud)

我完全不知道如何检查差异是否大于 5 分钟,我也不知道在哪里/如何放置UPDATE Session_Active = false(如果差异是 5 分钟或更长时间)

提前致谢!(:

mysql session

3
推荐指数
1
解决办法
3085
查看次数

具有不同时区的 MySQL 日期时间

DateTime在数据库中有一个对象mysql,例如包含此datetime "2017-08-14 18:06:40"对象,server/mysql默认时区是美国,因此当我插入它时,datetime它会进入美国时区。

我的问题是,当来自欧洲的用户选择该日期时间时,由于时间差异,它会有所不同,不是吗?

我该如何解决这个问题。我希望欧洲的用户获得相对于他们的时区的日期时间

我通过搜索发现

CONVERT_TZ(`comment_date`,@@global.time_zone,@@session.time_zone) AS comment_date,
Run Code Online (Sandbox Code Playgroud)

然后我发现需要设置@@session.time_zone不自动检测

那么我们如何解决这个问题?有哪些选项和技术apps可以用于datetime跨国家统一?

mysql timezone

3
推荐指数
1
解决办法
9346
查看次数

NSDate到MySQL的日期

我想将NSDate保存到MySQL字段.哪种类型最好?DATE或TIMESTAMP?以及如何格式化我的NSDate发送它(到PHP脚本)并将其保存在我的字段中?

php mysql objective-c nsdate ios

2
推荐指数
1
解决办法
4484
查看次数

Php的新DateTime()无法在我的新服务器上运行

我想计算两个日期之间的时间间隔.所以这是我的代码

    $start_date = new DateTime("$date1");
$end_date = new DateTime("$date2");
$interval = $start_date->diff($end_date);

$days = $interval->d;
$months = $interval->m;
$years = $interval->y;
$hours = $interval->h;
$mins = $interval->i;
$secs = $interval->s;
Run Code Online (Sandbox Code Playgroud)

当我尝试回显结果时,它返回一个空结果.

这个相同的代码在我的开发服务器和localhost上工作,一旦我改为另一台服务器就停止响应.

我检查了php.ini的时区设置,很不错.

我将非常感谢你的帮助

php datetime

2
推荐指数
1
解决办法
8528
查看次数

MySQL 5.7时间戳字段显示日期时间?

我的数据库中有一列名为time。此列的类型为timestamp,默认值为CURRENT_TIMESTAMP

但是在一些插入之后,phpMyAdmin它在其中将值显示为datetime,例如2019-05-05 04:24:45,甚至在那里也显示了时区并且可以更改!

我以为MySQL的时间戳是4个字节(相比于datetime的8个字节),并且不存储时区,数据与INT(10)相同,例如:(1557094115自1970年以来经过的秒数或类似的东西)

谁能解释一下,是bug还是什么?

MySQL版本5.7.25

编辑1(屏幕截图):

这是一TIMESTAMP列,默认值为CURRENT_TIMESTAMP 在此处输入图片说明

正如您所看到的那样DATETIME,我无法将它与unix_timestamp的整数值进行比较...也可以将TimeZone更改为任何值(我认为时间戳记不存储时区...) 在此处输入图片说明

编辑2:

如果(基于一个答案)MySQL在内部将其存储为整数,那么为什么不能将其与整数进行比较?(以下查询无效)

DELETE FROM `table` WHERE time < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL :days DAY))
Run Code Online (Sandbox Code Playgroud)

SQLSTATE [22007]:无效的日期时间格式:1292错误的日期时间值:第1行的“时间”列为“ 1555980012”

我也在Sequel Pro和MySQLWorkbench中尝试了相同的结果

mysql datetime timestamp phpmyadmin

2
推荐指数
1
解决办法
299
查看次数

尽管更新记录,MySQL中的时间戳仍未更新

我有一个列,其中包含MySQL数据库中的时间戳.无论我更新记录多少次,我的时间戳都不会更新.我有什么办法让它自动更新吗?

在Stackoverflow中搜索其他问题,大多数人都说相反,它真的很混乱!例如,这个, 我应该使用字段'datetime'还是'timestamp'?(看看评分最高的答案)

谢谢

这是我的表格结构

+----------------+-------------+------+-----+-------------------+----------------+
| Field          | Type        | Null | Key | Default           | Extra          |
+----------------+-------------+------+-----+-------------------+----------------+
| Num            | int(11)     | NO   | PRI | NULL              | auto_increment |
| mem_name       | varchar(50) | NO   |     | NULL              |                |
| mem_id         | int(11)     | NO   |     | NULL              |                |
| car_number     | varchar(11) | NO   |     | NULL              |                |
| firstcall_time | timestamp   | NO   |     | CURRENT_TIMESTAMP |                |
| tow_time …
Run Code Online (Sandbox Code Playgroud)

mysql phpmyadmin

0
推荐指数
2
解决办法
8576
查看次数

标签 统计

mysql ×10

datetime ×4

php ×4

timestamp ×4

phpmyadmin ×2

database ×1

date ×1

ios ×1

java ×1

magento ×1

magento2 ×1

nsdate ×1

objective-c ×1

session ×1

sql ×1

timezone ×1