【问题标题】:Query to convert from datetime to date mysql查询从日期时间转换为日期mysql
【发布时间】:2011-06-12 01:18:49
【问题描述】:

我正在尝试获取日期时间字段的日期部分。我知道我可以使用 date_format 获取它,但它会返回一个字符串或“varchar”字段。如何将结果转换为日期而不是 varchar?

这是我返回 varchar 的查询:

(Select Date_Format(orders.date_purchased,'%m/%d/%Y')) As Date  

我尝试了这个问题的几种组合,但无法使其发挥作用:

mysql query - format date on output?

感谢任何帮助。

【问题讨论】:

  • 感谢这个解决方案对我非常有用

标签: sql mysql datetime date


【解决方案1】:

尝试将其转换为 DATE

SELECT CAST(orders.date_purchased AS DATE) AS DATE_PURCHASED

【讨论】:

    【解决方案2】:

    使用DATE function

    SELECT DATE(orders.date_purchased) AS date
    

    【讨论】:

    • 它告诉我“DATE”不是一个公认的内置函数名。”
    • 像魅力一样工作。谢谢
    【解决方案3】:

    我看到了许多类型的用途,但我发现这个布局作为参考工具更有用:

    SELECT DATE_FORMAT('2004-01-20' ,'%Y-%m-01');
    

    【讨论】:

      【解决方案4】:

      Cyber​​nate 或 OMG Ponies 解决方案都可以使用。根本问题是DATE_FORMAT() 函数返回一个字符串,而不是日期。当你写了

      (Select Date_Format(orders.date_purchased,'%m/%d/%Y')) As Date 
      

      我认为您实际上是在要求 MySQL 尝试根据该格式字符串格式化 date_purchased 中的值,而不是调用该列 date_purchased,而是将其称为“日期”。但是该列将不再包含日期,它将包含一个字符串。 (因为Date_Format() 返回的是字符串,而不是日期。)

      我不认为那是你想做的,但那是你正在做的。

      不要将值的外观与值的含义混淆。

      【讨论】:

        【解决方案5】:

        date_format 的语法:

        SELECT date_format(date_born, '%m/%d/%Y' ) as my_date FROM date_tbl
        
            '%W %D %M %Y %T'    -> Wednesday 5th May 2004 23:56:25
            '%a %b %e %Y %H:%i' -> Wed May 5 2004 23:56
            '%m/%d/%Y %T'       -> 05/05/2004 23:56:25
            '%d/%m/%Y'          -> 05/05/2004
            '%m-%d-%y'          -> 04-08-13
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-07-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多