如何在kdb/q中将DateName列拆分为日期列与名称列?
拆分DateName列为日期和名称列的解决方案
针对你要将DateName列拆分为前10位的Date列和剩余部分的Name列的需求,以下是主流数据库的实现方案:
MySQL 实现
SELECT LEFT(DateName, 10) AS Date, SUBSTRING(DateName, 11) AS Name FROM your_table;
也可以结合长度计算实现:
SELECT LEFT(DateName, 10) AS Date, RIGHT(DateName, LENGTH(DateName) - 10) AS Name FROM your_table;
SQL Server 实现
SELECT LEFT(DateName, 10) AS Date, SUBSTRING(DateName, 11, LEN(DateName)) AS Name FROM your_table;
或者用STUFF剔除前10个字符:
SELECT LEFT(DateName, 10) AS Date, STUFF(DateName, 1, 10, '') AS Name FROM your_table;
Oracle 实现
SELECT SUBSTR(DateName, 1, 10) AS "Date", SUBSTR(DateName, 11) AS Name FROM your_table;
补充说明
- 所有示例中的
your_table需要替换为你的实际表名 - 如果要将拆分后的列永久保存到表中,可先添加列再更新数据,以MySQL为例:
ALTER TABLE your_table ADD COLUMN `Date` VARCHAR(10), ADD COLUMN Name VARCHAR(255); UPDATE your_table SET `Date` = LEFT(DateName, 10), Name = SUBSTRING(DateName, 11);
内容的提问来源于stack exchange,提问作者mmv456
相关产品推荐
相关产品推荐

