如何将players_wc表中Player_DOB文本列转换为日期类型以按年龄排序
将文本类型日期列转为可排序的日期类型
你的需求是把players_wc表中text类型的Player_DOB列(格式如02-09-1992)转为可用于按年龄排序的date类型,你给出的两步操作是完全可行的,下面详细说明并补充后续可选操作:
执行转换步骤
- 新增一个
DATE类型的DOB列来存储转换后的日期
ALTER TABLE players_wc ADD (DOB DATE);
- 将原文本列的日期值转换为日期类型并写入新列
UPDATE players_wc SET DOB=to_date(Player_DOB,'DD-MM-YYYY');
后续验证与优化操作
- 验证转换正确性:先抽查部分数据,确认转换没有出错
SELECT Player_DOB, DOB FROM players_wc LIMIT 10;
- 清理原列(可选):如果原文本列不再需要,可以删除它
ALTER TABLE players_wc DROP COLUMN Player_DOB;
- 统一列名(可选):如果想保留原列名,可以把新列重命名为
Player_DOB
ALTER TABLE players_wc RENAME COLUMN DOB TO Player_DOB;
按年龄排序示例
转换完成后,就可以基于日期列计算年龄并排序了,比如:
SELECT *, EXTRACT(YEAR FROM AGE(DOB)) AS age FROM players_wc ORDER BY age DESC;
内容的提问来源于stack exchange,提问作者Dejack
相关产品推荐
相关产品推荐

