【问题标题】:Does not return the year in MySQL不返回 MySQL 中的年份
【发布时间】:2021-07-22 15:40:10
【问题描述】:

查询

SELECT Name AS Period,YEAR(Name) AS Year FROM periods;
Period Year
202001 NULL
202002 NULL
202003 NULL
202004 NULL
202005 NULL
202006 NULL
202007 NULL

它在 MariaDB 中运行良好,但在 MySQL 中却不行。

我该如何解决?

【问题讨论】:

  • Name 列的数据类型是什么?
  • 202001 是字符串而不是日期。使用像 LEFT() 这样的字符串函数。
  • 你在 mysql 和 mariaDB 中定义该列的方式不同吗?
  • @RiggsFolly 不,它们是一样的。
  • @forpas 我该怎么做你的建议?

标签: mysql sql


【解决方案1】:

尝试以下查询

SELECT Name AS Period,Year(DATE_FORMAT(concat(Name,'01'), '%Y%m%d')) AS Year FROM periods;

【讨论】:

  • 您好,感谢您的回答。我试过了,还是不行!
  • 我认为您需要一个完整的日期(带有日期编号)才能使STR_TO_DATE() 真正正常工作@Tejas
  • 已更新查询,请立即查看
  • @Tejas 完美运行,非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多