【问题标题】:convert string to timestamp in MySQL query [duplicate]在MySQL查询中将字符串转换为时间戳[重复]
【发布时间】:2018-05-15 11:19:24
【问题描述】:

有没有办法在 MySQL 中将字符串转换为时间戳?

例如,我有字符串 01-05-2016 10:22 am 需要按 desc 顺序获取。

可以排序吗?

【问题讨论】:

  • 那是几号?那是 5 月 1 日还是 1 月 5 日?
  • 我在 varchar 中的数据库数据类型 .. 它在 order_date 字段中获取 02-26-2015 上午 10:40 .. 我想对该字段进行排序 desc .. 如何?
  • 最好的选择是让您从 varchar 更改为日期/时间数据类型;那么你可以应用一个简单的 ORDER BY 子句
  • 不可能 .. 要求是以这种格式存储数据 (mm-dd-yyyy hh:mm a) 并按 desc 获取订单
  • @G Roy - 那么你应该说这个要求很糟糕......将字符串视为日期而不是使用实际日期的商业理由是什么?

标签: php mysql


【解决方案1】:

在 SQL 中使用按函数排序

SELECT * FROM table_name order by datetime DESC;

这将按降序返回值到 php.ini。 无需再次排序。

【讨论】:

    【解决方案2】:

    UNIX_TIMESTAMP 可以解决问题。

    和

    如果您想使用 AM/PM 表示法,则需要使用 STR_TO_DATE。

    SELECT UNIX_TIMESTAMP(
        STR_TO_DATE(' 2016-05-01 10:22 am', '%Y-%m-%d %h:%i%p')
    );
    

    【讨论】:

    • ..它不适用于 SELECT UNIX_TIMESTAMP( STR_TO_DATE(' 2016-05-01 10:22 am', '%Y-%m-%d %h:%i%p') ) ;
    猜你喜欢
    • 2012-02-15
    • 1970-01-01
    • 2017-01-18
    • 2019-10-23
    • 1970-01-01
    • 2021-12-22
    • 1970-01-01
    • 1970-01-01
    • 2016-11-27
    相关资源
    最近更新 更多