将日期时间值转换为字符串
Posted
技术标签:
【中文标题】将日期时间值转换为字符串【英文标题】:Convert datetime value into string 【发布时间】:2011-01-24 10:41:54 【问题描述】:我在 mysql 中使用 NOW() 获取当前日期和时间。我想将日期值转换为 varchar 并将其与另一个字符串连接。我该怎么做?
【问题讨论】:
【参考方案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个字符。
这取决于你想要的格式。通常你可以使用上面的脚本,你可以根据需要连接另一个字段或字符串。
因为如果您阅读它,实际上日期和时间字段就像字符串一样。但是当然你会在更新或插入时出错。
【讨论】:
以上是关于将日期时间值转换为字符串的主要内容,如果未能解决你的问题,请参考以下文章
如何将具有 24 小时值的日期/时间字符串转换为 Pandas 中的日期时间?
使用 vb.net 将字符串时间/日期值转换为 dateTime 值