将日期拆分为多列

Split date into multiple columns

我已经搜索了几个小时,但一直找不到答案。我希望有人知道如何将日期分成 3 列。我有一个 mysql table 看起来像下面的

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。有人怎么做吗?谢谢

  • 您可以使用各种日期函数,例如 YEAR(), MONTH(), and 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