繁体   English   中英

PHP / SQL按date_time排序。 按年份排序,而不是月份mm / dd / yyyy

[英]PHP/SQL order by date_time. order by Year not month mm/dd/yyyy

我在“按date_time排序”时遇到了麻烦。 我有一个正在访问我们数据库的php页面。 我有一个可以在表格中显示数据的函数。 sql语句如下:

SELECT date_time
, pass_no
, location2 
from usr_vftcapstone_0.vftPasses as P, Scans as S 
where P.user_name='terak' and S.details2=P.`pass_no` order by S.date_time;

我正在执行“联接”,以便获取与用户有关的所有数据。 用户具有通行证列表。 这些通行证有location2。 我正在尝试从分配给用户的所有通行证中获取所有“ location2”条目。

我努力了:

order by convert(datetime, date_time, 103) ASC

style 103 = dd/MM/yyyy (msdn)  

为此,我不知道在哪里包含“ 103型”。 我在同一sql语句中的“ ASC”之后尝试了此方法,但是我不认为这是如何工作的。

我的输出按降序排列,但按月排序。 我需要按年订购。
date_time字段显示如下: 1/01/2013 10:30:51

任何帮助,将不胜感激。 谢谢大家。

只需按date_time字段排序即可。 仅转换为用于显示目的的字符串。

尝试:

ORDER BY STR_TO_DATE(date_time, '%d/%m/%Y %H:%i:%s')

样式号用于SQL Server,但您的查询看起来像MySQL。

如果您的日期可以采用不同的格式(这是什么样的数据库?),则可以执行以下操作:

ORDER BY CASE WHEN date_time LIKE '%/%/% %:%:%'
                   THEN STR_TO_DATE(date_time, '%d/%m/%Y %H:%i:%s')
              WHEN date_time LIKE '%/%/% %:%'
                   THEN STR_TO_DATE(date_time, '%d/%m/%Y %H:%i')
         END

你可以尝试一下吗

SELECT date_time
, pass_no
, location2 
from usr_vftcapstone_0.vftPasses as P, Scans as S 
where P.user_name='terak' and S.details2=P.`pass_no` 
order by SUBSTRING(S.date_time,7,4) ASC

我从这里用过的

SUBSTRING ( expression ,start , length )

也试试这个

我已使用Use DATEPART(Transact-SQL)提取年份。

 SELECT date_time
    , pass_no
    , location2 
    from usr_vftcapstone_0.vftPasses as P, Scans as S 
    where P.user_name='terak' and S.details2=P.`pass_no` order by 
datePart(yy, convert(datetime, S.date_time, 103)) ASC

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM