将日期时间值转换为字符串


74

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

Answers:



62

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

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

在这种情况下,您将使用:

CAST(date_value AS char)

这回答了一个稍有不同的问题,但是问题标题似乎模棱两可,以至于可以帮助某人进行搜索。


这个问题的标题很清楚。Khilen只想将日期字段转换为字符串。您的答案涵盖了两个日期字符串的比较,而不是相关的答案。否决了答案。
KULKING

10
实际上,@ KULKING,我将两个日期作为字符串进行了比较,这使得此日期特别适用于所问的问题。这里的问题是类型转换,我的回答解决了这个问题,尽管我的问题背景很少。
和弦,2013年

3
+1-一种获取字符串的好方法(ps有时这里有些琐碎;))
马修·洛克

您无需使用CAST。如果您对日期使用任何字符串运算符,它将自动将其转换为字符串。
Barmar

1
这在需要将日期与实际字符串进行比较的情况下很有用。在这些情况下,DATE_FORMAT失败并出现Illegal mix of collations致命错误
MacroMan '18

2

尝试这个:

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

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

这取决于您想要的格式。通常,您可以使用上面的脚本,并且可以根据需要连接其他字段或字符串。

因为实际上,如果您将日期和时间字段视为字符串,则它将作为字符串。但是,当然,在更新或插入它时会出错。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.