mysql - 将日期拆分为多列

标签 mysql mysql-workbench heidisql

我已经搜索了几个小时,但一直找不到答案。我希望有人知道如何将日期分成 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。有人怎么做吗?谢谢。

最佳答案

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

关于mysql - 将日期拆分为多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52652242/

相关文章:

mysql - 将数据库的数据移动到网络驱动器

php - 如何在 PHP 中以随机顺序从现有 mysql 数据库创建两个新列表,其中相同位置的元素不相等?

mysql - 制作一个表innodb和分区会提高mysql的性能吗?

mysql - 多对多关系和复杂的 where 语句

mysql - 结果中 2 列的聚合

c# - 在我的 datagridview 上显示照片时出错

mysql - 使用工作台中的 IP 地址连接到远程数据库

MySQL Workbench 连接表编辑 - 只读

mysql - MySQL 中的日期差异(以分钟为单位)

mysql - 从表中删除具有相同 DisplayID 的重复项