【问题标题】:'MySQL STR_TO_DATE with no day in the string'MySQL STR_TO_DATE 字符串中没有日期
【发布时间】:2019-07-14 13:43:18
【问题描述】:

我试图在我的 MySQL 代码中使用 STR_TO_DATE,但我的字符串不包含一天。

SELECT STR_TO_DATE('August 2020', '%M %Y')

此代码返回空值。如果我的约会中有这样的一天,我可以让这个功能工作:

SELECT STR_TO_DATE('August 20, 2020', '%M %d, %Y')

是不是我格式不对?或者 MySQL 不支持这个功能?如果它不支持它有没有办法解决它?

【问题讨论】:

  • 这工作正常:SELECT STR_TO_DATE('August 2020', '%M %Y') 返回 - 2020-08-00。
  • 我在上面添加了一张图片,显示我尝试了同一行,但它仍然返回 [NULL]
  • 该格式似乎适用于 5.6 版,但在最新版本 8.0.13 中不起作用。

标签: mysql str-to-date


【解决方案1】:

问题与 MySql 版本有关。你可以使用

select STR_TO_DATE(CONCAt('1 ','August 2020'), '%d %M %Y')

【讨论】:

  • 我得到了这种格式,但如果没有一天,它就不起作用。除了恢复到不同版本的 MySQL 之外,还有其他方法吗?
  • 没有一天是什么意思?通常0 August 2020 不是有效日期
  • 我使用的数据格式有一个字符串“2020 年 8 月”,但我不确定如何将其转换为 SQL 可以使用的日期。
  • 我相信我的答案足以将其转换为日期。
猜你喜欢
  • 2015-12-15
  • 2015-08-28
  • 2016-03-25
  • 2017-01-24
  • 2014-07-11
  • 2014-06-28
  • 1970-01-01
  • 2014-04-19
  • 2016-12-23
相关资源
最近更新 更多