按日期时间排序,类型为 varchar
order by datetime with type varchar
我有一个问题,但我没有在 Whosebug 上找到解决方案。所以这是我的问题:
如何在我的 PHP 文件中按日期时间(dd/mm/yy hh:mm:ss)优先级排序 Varchar?
我有一个 SQL table 和 "registerdate" 列。它的类型是 Varchar(由于其他 table 问题,日期时间是不可能的)。我的 SQL ORDER BY 查询是:
SELECT * FROM users ORDER BY registerdate DESC LIMIT 3
这导致:
12-11-16 11:03:54
06-12-16 19:05:22
06-12-16 15:03:30
我想要什么:
06-12-16 19:05:22
06-12-16 15:03:30
12-11-16 11:03:54
在我的 php 文件中,我用 $datetime=date("d/m/y H:i:s"); 注册时间;在我的 table 中,它是一个看起来像 03/12/16 12:19:33
的 Varchar
我想我必须在我的 SQL 查询中转换它,但我不知道如何。谁能帮我?非常感谢!
-----SERVER/SQL 信息-----
Server: Localhost via UNIX socket
Servertype: MariaDB
Serverversie: 10.0.27-MariaDB-cll-lve - MariaDB Server
Protocolversie: 10
SELECT * FROM users u ORDER BY STR_TO_DATE(u.registerdate, '%d/%m/%Y %H:%i:%s') DESC LIMIT 3
或
SELECT *, STR_TO_DATE(u.registerdate, '%d/%m/%Y %H:%i:%s') as newdate FROM users u ORDER BY newdate DESC LIMIT 3
如果您使用 sql 服务器,我认为这对您也有用。
SELECT * 来自用户 ORDER BY Cast(registerdate AS datetime) DESC
对于 Oracle 数据库,语法为:
SELECT * FROM users ORDER BY TO_DATE(registerdate, 'DD/MM/YY HH24:MI:SS') DESC
我有一个问题,但我没有在 Whosebug 上找到解决方案。所以这是我的问题:
如何在我的 PHP 文件中按日期时间(dd/mm/yy hh:mm:ss)优先级排序 Varchar? 我有一个 SQL table 和 "registerdate" 列。它的类型是 Varchar(由于其他 table 问题,日期时间是不可能的)。我的 SQL ORDER BY 查询是:
SELECT * FROM users ORDER BY registerdate DESC LIMIT 3
这导致:
12-11-16 11:03:54
06-12-16 19:05:22
06-12-16 15:03:30
我想要什么:
06-12-16 19:05:22
06-12-16 15:03:30
12-11-16 11:03:54
在我的 php 文件中,我用 $datetime=date("d/m/y H:i:s"); 注册时间;在我的 table 中,它是一个看起来像 03/12/16 12:19:33
的 Varchar我想我必须在我的 SQL 查询中转换它,但我不知道如何。谁能帮我?非常感谢!
-----SERVER/SQL 信息-----
Server: Localhost via UNIX socket
Servertype: MariaDB
Serverversie: 10.0.27-MariaDB-cll-lve - MariaDB Server
Protocolversie: 10
SELECT * FROM users u ORDER BY STR_TO_DATE(u.registerdate, '%d/%m/%Y %H:%i:%s') DESC LIMIT 3
或
SELECT *, STR_TO_DATE(u.registerdate, '%d/%m/%Y %H:%i:%s') as newdate FROM users u ORDER BY newdate DESC LIMIT 3
如果您使用 sql 服务器,我认为这对您也有用。
SELECT * 来自用户 ORDER BY Cast(registerdate AS datetime) DESC
对于 Oracle 数据库,语法为:
SELECT * FROM users ORDER BY TO_DATE(registerdate, 'DD/MM/YY HH24:MI:SS') DESC