【问题标题】:How to extract formatted max date value from MySQL table如何从 MySQL 表中提取格式化的最大日期值
【发布时间】:2012-09-25 11:46:51
【问题描述】:

在我的数据库中,字段日期值以dd/MM/yyyy hh:mm:ss 格式保存在varchar

假设我的数据库包含日期21/09/2012 01:01:0102/10/2012 03:04:08

我想找出最大日期,所以我通过以下查询将字符串转换为日期

SELECT max(str_to_date(dt.date,'%d/%m/%Y %H:%i:%s')) as max_date from employee emp where emp_id=1;

这会返回正确的结果,但格式如下:2012-10-02 03:04:08

但我想要这种格式的结果:02/10/2012 03:04:08。所以我使用了以下查询,但它返回了结果:

SELECT max(date_format(str_to_date(emp.date,'%d/%m/%Y %H:%i:%s'),'%d/%m/%Y %H:%i:%s')) as max_date from employee emp where emp_id=1;

结果:21/09/2012 01:01:01

【问题讨论】:

    标签: sql string date max date-format


    【解决方案1】:

    这似乎太简单了,但您是否尝试过切换调用函数的顺序?

    而不是SELECT max(date_format(str_to_date(emp.date,'%d/%m/%Y %H:%i:%s'),'%d/%m/%Y %H:%i:%s')) as max_date from employee emp where emp_id=1;

    试试SELECT date_format(max(str_to_date(emp.date,'%d/%m/%Y %H:%i:%s')),'%d/%m/%Y %H:%i:%s') as max_date from employee emp where emp_id=1;

    【讨论】:

      【解决方案2】:

      max() 函数不需要将日期转换为字符串即可正常工作。您应该能够运行以下查询并获得所需的结果:

      SELECT date_format(max(emp.date), '%d/%m/%Y %H:%i:%s') FROM employee emp WHERE emp_id=1
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-11
        • 1970-01-01
        • 1970-01-01
        • 2019-02-03
        相关资源
        最近更新 更多