MySQL在比较datetime列时返回0个结果

MySQL在比较datetime列时返回0个结果,mysql,Mysql,我的表中有一个名为date\u time的datetime列。当我尝试在给定日期之前获取某个日期的所有条目时,我总是得到0个结果,即使数据库中有数千个条目 例如,我的表格中有3行: INSERT INTO `fixtures` (`id`, `opta_id`, `competition_id`, `season_id`, `status`, `round`, `date_time`, `timezone`, `created_at`, `updated_at`) VALUES (825, 'g

我的表中有一个名为date\u time的datetime列。当我尝试在给定日期之前获取某个日期的所有条目时,我总是得到0个结果,即使数据库中有数千个条目

例如,我的表格中有3行:

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个结果:

update fixtures set status=1 where date_time < '2019-04-30 00:00:00';
updatefixtures set status=1,其中date_time<'2019-04-30 00:00:00';

我做错了什么?

您可以尝试使用
STR\u to\u DATE
DATE\u time
to datetime进行比较

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');
更新装置
设置状态=1
其中STR_TO_DATE(日期时间,%Y-%m-%d%T')
您可以尝试使用
STR\u to\u DATE
DATE\u time
to datetime进行比较

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');
更新装置
设置状态=1
其中STR_TO_DATE(日期时间,%Y-%m-%d%T')
列中的日期类型是什么?如果
date\u time
的数据类型是
datetime
,则代码工作正常。或者可能不是?数据类型是datetime,我已经检查并重新检查过。您列中的日期类型是什么?如果
date\u time
的数据类型是
datetime
,则代码工作正常。或者可能不是?数据类型是datetime,我已经检查并重新检查了。