【问题标题】:MYSQL order by time am/pmMYSQL 按时间 am/pm 排序
【发布时间】:2012-10-18 10:31:11
【问题描述】:

我在表格中有一行以上午/下午格式保存一天中的时间,例如

timeField
---------
9.00am
10.00pm
7.00am 
etc...

mysql 中有没有办法对这些值进行排序?

【问题讨论】:

  • I have a row in a table which holds the time of day in am/pm format 在我看来这是一个糟糕的设计决定...
  • 这只是其他人构建数据库的方式 - 目前它让我很难过:(

标签: mysql time sql-order-by


【解决方案1】:

您可以通过在 MySQL 中使用 STR_TO_DATE 函数来做到这一点:

SELECT STR_TO_DATE('10.00pm','%h.%i%p');

试试这个:

SELECT * 
FROM table_name 
ORDER BY STR_TO_DATE(timeField,'%h.%i%p');

示例:SQLFiddle

【讨论】:

  • 我认为您的意思是 ORDER BY,而不是 SELECT。
【解决方案2】:

为了订购它,您需要格式化日期字段。

试试这个

SELECT COl1, COl2, DATE_FORMAT(yourdate, '%k:%i:%s') AS mydate
FROM your_table
ORDER BY mydate 

享受

【讨论】:

  • 刚刚尝试 ORDER BY STR_TO_DATE(time_id,'%h.%i%p') DESC 似乎有效
【解决方案3】:

使用下面的查询

select * from 'Your Table Name' order by str_to_date('yourtimefield', '%l:%i %p');

【讨论】:

    【解决方案4】:
    SELECT * FROM table ORDER BY Name
    

    这对我来说一切都井井有条:按字母顺序排列,日期和时间

    【讨论】:

      猜你喜欢
      • 2012-03-28
      • 2017-06-15
      • 2022-01-19
      • 2018-09-02
      • 1970-01-01
      • 2020-08-21
      • 1970-01-01
      • 2021-12-29
      • 1970-01-01
      相关资源
      最近更新 更多