代码之家  ›  专栏  ›  技术社区  ›  John Beasley

MySQL:日期字符串到日期到月份返回为空

  •  0
  • John Beasley  · 技术社区  · 2 年前

    此数据库中的日期采用字符串形式,格式如下:

    "1/5/2019"
    

    我可以使用此查询将字符串日期转换为日期:

    SELECT  STR_TO_DATE(`date`, '%m/%d/%Y') FROM `supermarket_sales`
    

    以这种格式返回:

    2019-01-05
    

    不太清楚为什么,尤其是因为它是%m/%d/%Y,但这不是我的主要问题。

    我现在需要做的就是把月份弄清楚。所以很明显,上面的内容应该是这样的:

    January
    

    因此,为了实现这一目标,我使用了以下查询:

    select DATE_FORMAT(STR_TO_DATE(`date`,'%d %M %Y') ,'%d-%m-%Y') FROM `supermarket_sales`
    

    但我得到的回报是NULL值。

    我怎样才能让它工作?

    1 回复  |  直到 2 年前
        1
  •  1
  •   nbk    2 年前

    你可以使用 MONTHNAME

    SELECT  MONTHNAME(STR_TO_DATE('1/5/2019', '%m/%d/%Y'))
    
    月名(STR_TO_DATE(“2019年1月5日”,“%m/%d/%Y”))
    一月

    fiddle

    但最好是以适当的mysql日期格式保存数据 2019-01-05 转换成本时间和宝贵资源