mysql - 将 MySQL 文本字符串与时间转换为日期

标签 mysql date str-to-date

我正在尝试将带有时间的日期字符串(存储在 varchar 字段中)转换为日期格式。当前字符串的格式如下:December 23, 2010 13:57

我需要将它们转换为不带时间的标准日期格式:2010-12-23

我尝试了以下方法,但结果为 NULL:

SELECT STR_TO_DATE(fieldname, '%Y-%m-%d') AS newdate FROM tablename;

接下来,我想也许我必须从字符串中去掉时间,所以我尝试了:

SELECT STR_TO_DATE(SUBSTRING(fieldname, 1, CHAR_LENGTH(fieldname) - 6), '%Y-%m-%d') AS newdate FROM tablename;

结果也为 NULL。

我的做法是否错误?

最佳答案

正确的格式是这样的:

SELECT STR_TO_DATE(fieldname, '%M %e, %Y') AS newdate FROM tablename;

地点:

  • %M 是月份名称(一月..十二月)
  • %e 是一月中的第几天,数字 0..31
  • %Y 是年份

关于mysql - 将 MySQL 文本字符串与时间转换为日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22389592/

相关文章:

php - 编码/解码多个国际字符的最佳方法 (MySQL/PHP)

python - Django ORM,按天分组

mysql - STR_TO_DATE(含时区)

php - MySQL根据日期时间字符串的日期和时间排序

mysql - 从 MySQL 切换到 Cassandra (NoSQL) 的 future 潜力

php - 插入...重复 key 更新问题

jquery - 在 HTML 上使用 jQuery 选择生日/出生日期格式的菜单

excel - 将两个日期之间的天数计算为每天发生一次

c++ - boost::gregorian::time 到 unix 时间戳作为 double

mysql - 由于函数 str_to_date 的日期时间值 "..."不正确,无法创建 mysql 表