【问题标题】:Convert datetime value into string将日期时间值转换为字符串
【发布时间】:2011-01-24 10:41:54
【问题描述】:

我在 mysql 中使用 NOW() 获取当前日期和时间。我想将日期值转换为 varchar 并将其与另一个字符串连接。我该怎么做?

【问题讨论】:

    标签: mysql database string datetime


    【解决方案1】:

    使用DATE_FORMAT()

    SELECT
      DATE_FORMAT(NOW(), '%d %m %Y') AS your_date;
    

    【讨论】:

      【解决方案2】:

      这是超级旧的,但我想我会添加我的 2c。 DATE_FORMAT 确实返回了一个字符串,但我正在寻找 CAST 函数,在我已经在数据库中有一个日期时间字符串并且需要对其进行模式匹配的情况下:

      http://dev.mysql.com/doc/refman/5.0/en/cast-functions.html

      在这种情况下,你会使用:

      CAST(date_value AS char)

      这回答了一个稍微不同的问题,但问题的标题似乎很模糊,这可能有助于搜索。

      【讨论】:

      • 题主问的很清楚。 Khilen 只想将日期字段转换为字符串。您的答案涵盖了两个日期字符串的比较,这不是相关答案。否决了答案。
      • 实际上,@KULKING,我将两个日期作为字符串进行了比较,这使得这特别适用于所提出的问题。这里的问题是类型转换,我的回答解决了这个问题,尽管有少量我自己的问题背景作为上下文。
      • +1 - 快速获取字符串的好方法(p.s. 有时这里有些琐碎;))
      • 您不需要使用CAST。如果您使用任何带有日期的字符串运算符,它会自动将其转换为字符串。
      • 这在您需要将日期与实际字符串进行比较的情况下很有帮助。在这些情况下,DATE_FORMAT 失败并出现 Illegal mix of collations 致命错误
      【解决方案3】:

      试试这个:

      concat(left(datefield,10),left(timefield,8))
      
      • 基于完整日期yyyy-MM-dd 的日期字段上的 10 个字符。

      • 基于全职hh:mm:ss的时间字段上的8个字符。

      这取决于你想要的格式。通常你可以使用上面的脚本,你可以根据需要连接另一个字段或字符串。

      因为如果您阅读它,实际上日期和时间字段就像字符串一样。但是当然你会在更新或插入时出错。

      【讨论】:

        猜你喜欢
        • 2019-03-14
        • 1970-01-01
        • 2015-09-17
        • 1970-01-01
        • 2022-08-18
        • 2017-08-31
        相关资源
        最近更新 更多