mysql - 如何在mysql中按时间戳排序?

标签 mysql

SELECT * FROM table ORDER BY timestamp;

当我尝试按时间戳对记录进行排序时,我得到以下顺序

08/20/2012 02:09:39 PM
08/20/2012 03:19:08 PM
08/20/2012 09:04:24 AM
08/20/2012 09:05:25 AM

如何更改查询以使记录从上午到下午排序?

最佳答案

问题是您的时间戳字符串表示形式不是规范格式,也就是说,对字符串值进行排序不会按时间戳顺序排序。

要按顺序对行进行排序,您可以将值的字符表示转换为 DATETIME 或 TIMESTAMP 数据类型,或者至少转换为规范格式的字符表示(例如 'YYYY-MM-DD hh:mm: ss' 使用 24 小时制)。

STR_TO_DATE 函数可用于将已知格式的字符串表示形式转换为 DATETIME:

SELECT * FROM table
ORDER BY STR_TO_DATE(`timestamp`,'%m/%d/%Y %h:%i:%s %p')

http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-format http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_str-to-date

关于mysql - 如何在mysql中按时间戳排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12100308/

相关文章:

java - 在 Generic Generator 原生策略中设置 AllocationSize

php - 在页面退出/离开页面时执行 mysql 查询?

python - 在 Python 中重新打开 Mysql 连接

mysql - 错误 : Failed to build gem native extension (mysql2 on rails 3. 2.3)

mysql - 在 MySQL 中生成范围

php - PDO::FETCH_COLUMN 不获取任何内容

mysql - 自动递增不改变

MySQL 变量错误

Mysql select递归获取具有多个级别的所有子级

mysql - 根据两个连接的聚合查询进行计算