【问题标题】:Split date into multiple columns将日期拆分为多列
【发布时间】:2018-10-04 17:17:17
【问题描述】:

我一直在寻找几个小时,但一直未能找到答案。我希望有人可能知道如何将日期分成 3 列。我有一个如下所示的 mysql 表

Id   Email     First_Name   Last_Name  DOB          Gender
1    yo@1.com  Jack         Smith      1969-03-09   M
2    yo1@1.com Jill         Smith      1982-11-29   F

我希望最终格式如下

Id   Email     First_Name Last_Name DOB        DOB_Yr DOB_Mo DOB_Day Gender
1    yo@1.com  Jack       Smith     1969-03-09 1969   03     09      M
2    yo1@1.com Jill       Smith     1982-11-29 1982   11     29      F

我可以访问 HeidiSql 和 MySQL Workbench。有人该怎么做吗?谢谢。

【问题讨论】:

  • 您是否还想要前导零,例如:03 而不是 3 月份?
  • 我们敢问为什么吗?无论如何,考虑处理应用程序代码中数据显示的问题
  • 感谢@MadhurBhaiya 的帮助。你的解决方案奏效了。

标签: mysql mysql-workbench heidisql


【解决方案1】:
  • 您可以使用各种日期函数,如YEAR()MONTH()DAY(),从 MySQL 日期中获取年、月和日值。

试试:

SELECT Id, 
       Email, 
       First_Name, 
       Last_Name, 
       DOB, 
       YEAR(DOB) AS DOB_Yr, 
       MONTH(DOB) AS DOB_Mo, 
       DAY(DOB) AS DOB_Day, 
       Gender 
FROM your_table 

如果您想在月份和日期中以 0 开头(03 而不是 3),您可以使用 Lpad() 函数。请尝试以下方法:

SELECT Id, 
       Email, 
       First_Name, 
       Last_Name, 
       DOB, 
       YEAR(DOB) AS DOB_Yr, 
       LPAD(MONTH(DOB), 2, '0') AS DOB_Mo, 
       LPAD(DAY(DOB), 2, '0') AS DOB_Day, 
       Gender 
FROM your_table 

【讨论】:

    猜你喜欢
    • 2022-10-04
    • 1970-01-01
    • 1970-01-01
    • 2022-06-14
    • 1970-01-01
    • 2016-02-20
    • 2016-06-16
    • 2020-05-03
    • 1970-01-01
    相关资源
    最近更新 更多