比较datetime列时,MySQL返回0结果

时间:2019-05-02 14:04:54

标签: mysql

我的表中有一个名为date_time的datetime列。当我尝试获取给定日期之前的日期的所有条目时,即使数据库中有成千上万,我也总是得到0个结果。

例如,这些是我表中的3行:

use strict;
use warnings;
open(FILE,"myfile");
my @file = <FILE>;


if(grep /mystatus eq 'PASSED\||FAILED/ && /myupdate ne TEST/, @file)
{
print "ok";
}
else
{
print "not matching\n";
}

此查询返回0个结果:

INSERT INTO `fixtures` (`id`, `opta_id`, `competition_id`, `season_id`, `status`, `round`, `date_time`, `timezone`, `created_at`, `updated_at`) VALUES
(825, 'g1011331', 8, 3, 1, 14, '2018-12-02 19:30:00', 'GMT', '2019-04-03 14:39:50', '2019-05-02 13:51:49'),
(890, 'g1011405', 8, 3, 1, 21, '2019-01-26 17:00:00', 'GMT', '2019-04-03 14:39:50', '2019-05-02 13:53:06'),
(891, 'g1011396', 8, 3, 1, 21, '2019-01-26 14:00:00', 'GMT', '2019-04-03 14:39:50', '2019-05-02 13:51:49');

我在做什么错了?

1 个答案:

答案 0 :(得分:0)

您可以尝试使用STR_TO_DATEdate_time进行日期时间比较。

update fixtures 
set status=1 
where STR_TO_DATE(date_time, '%Y-%m-%d %T') <  STR_TO_DATE('2019-04-30 00:00:00', '%Y-%m-%d %T');