我的表中有一个名为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');
我在做什么错了?
答案 0 :(得分:0)
您可以尝试使用STR_TO_DATE
让date_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');