Mysql 如果日期为YYYY-MM-DD,时间为hh:MM:ss AM/PM格式,如何获取最新记录

Mysql 如果日期为YYYY-MM-DD,时间为hh:MM:ss AM/PM格式,如何获取最新记录,mysql,Mysql,我想在我的数据库中获取最新的记录,其中日期和时间字段为varchar,格式为(YYYY-MM-DD和时间为hh:MM:ss AM/PM格式)。我需要 想办法把它们分类 执行此查询时: SELECT editdate,edittime from history where taskid like '%.433' ORDER BY editdate DESC ,STR_TO_DATE(edittime,'%H:%i:%s') DESC ; 我正在得到输出 +------------+-------

我想在我的数据库中获取最新的记录,其中日期和时间字段为varchar,格式为(YYYY-MM-DD和时间为hh:MM:ss AM/PM格式)。我需要 想办法把它们分类

执行此查询时:

SELECT editdate,edittime from history where taskid like '%.433' ORDER BY editdate DESC ,STR_TO_DATE(edittime,'%H:%i:%s') DESC ;
我正在得到输出

+------------+-------------+
| editdate   | edittime    |
+------------+-------------+
| 2017-08-22 | 12:53:36 PM |
| 2017-08-22 | 12:52:23 PM |
| 2017-08-22 | 12:50:42 PM |
| 2017-08-22 | 12:39:38 PM |
| 2017-08-22 | 12:37:13 PM |
| 2017-08-22 | 12:29:33 PM |
| 2017-08-22 | 02:52:44 PM |
| 2017-08-22 | 02:50:35 PM |
+------------+-------------+
但我希望下午2点以上12点的记录是最新的


请帮忙

从历史记录中选择editdate、edittime,其中taskid如“%.433”按editdate描述排序,STR_TO_DATE(edittime,%h:%i:%s%p')描述排序

尝试上面的查询


由于时间字段的格式为
'%h:%i:%s%p'
您需要为AM和PM添加
%p
,请尝试将查询更改为

SELECT editdate,edittime from history where taskid like '%.433' ORDER BY editdate DESC ,STR_TO_DATE(edittime,'%H:%i:%s') ASC;

注意最后的ASC。这意味着它将按时间顺序递增,所以最小日期优先。

没有任何更改。我将从%H更改为%H,并应用了与您所说的相同的内容。谢谢!!将日期和时间存储为单个实体并使用正确的数据类型。那就回来找我们。