Mysql日期\格式排序不起作用
我在cakephp框架下工作 因为我将日期字符串存储在varchar字段中。我需要转换它的时区后,需要改变格式。这是问题所在Mysql日期\格式排序不起作用,mysql,cakephp,Mysql,Cakephp,我在cakephp框架下工作 因为我将日期字符串存储在varchar字段中。我需要转换它的时区后,需要改变格式。这是问题所在 SELECT DATE_FORMAT(cast( CONVERT_TZ(`leads`.`221`, 'UTC', 'America/Los_Angeles') as datetime), '%b %d %Y %h:%i %p') from leads order by DA
SELECT DATE_FORMAT(cast( CONVERT_TZ(`leads`.`221`,
'UTC',
'America/Los_Angeles') as datetime), '%b %d %Y %h:%i %p')
from leads order by DATE_FORMAT(cast( CONVERT_TZ(`leads`.`221`,
'UTC',
'America/Los_Angeles') as datetime), '%b %d %Y %h:%i %p') desc.
这里时区隐蔽,日期格式一切正常。但在对该字段进行排序时,它的工作方式类似于字母顺序,而不是日期顺序
我知道我们需要从orderby字段中删除额外的mysql函数。那么只有当我们给予的时候它才会起作用
`order by `leads`.`221` desc`
但我不能这样给予。因为它是由cakephp框架创建的。我无法超越
请给出一个解决方案。在查询中使用AS将允许您按正在执行的操作进行排序
SELECT DATE_FORMAT(cast( CONVERT_TZ(`leads`.`221`,
'UTC',
'America/Los_Angeles') as datetime), '%b %d %Y %h:%i %p')
as `new_date` from `leads` order by `new_date` DESC;
首先尝试将字符串转换为日期,如“选择日期格式(STR_to_date('01/12/2013','%d/%m/%Y'),'%Y%m')”;如果您给我一些leads列的示例数据,肯定会为您提供正确的解决方案。