如何在kdb q中将日期格式从yyyy.mm.dd转换为Mmm-yy
在Kdb+ Q中将日期转换为"Mmm-yy"格式
问题描述
现有kdb q表:
([] date: 2023.09.09 2024.07.01 2027.02.06)
需要将表中日期转换为Mmm-yy格式(如Sept-23、Jul-24),预期转换结果如下:
| date |
|---|
| Sept-23 |
| Jul-24 |
| Feb-27 |
解决方案
可以通过提取月份缩写和年份后拼接的方式实现,代码如下:
- 定义原表:
t:([] date: 2023.09.09 2024.07.01 2027.02.06)
- 执行转换操作:
update date: (4#each string`month$date),"-",2#each string 100 xmod year date from t
代码解释
stringmonth$date:将日期转换为对应月份的全称(如2023.09.09转为"September"`)4#each ...:截取月份全称的前4个字符,得到Sept、Jul这类符合预期的缩写100 xmod year date:提取年份的后两位(如2023转为23)2#each string ...:确保年份始终为两位格式- 通过
,"-"将月份缩写和年份拼接,得到目标格式
执行结果
q)update date: (4#each string`month$date),"-",2#each string 100 xmod year date from t date ------- Sept-23 Jul-24 Feb-27
内容的提问来源于stack exchange,提问作者Dhanuushri
相关产品推荐
相关产品推荐

