You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Stata中如何将%td格式日期转换为YYYYMMDD格式?

Stata:将%td格式日期转换为YYYYMMDD格式

错误原因分析

你尝试的代码存在几个关键问题:

  • 第一个代码:daily(date, "DMY")完全多余,因为date已经是%td格式的日期型变量,daily()函数的作用是把字符串转成日期型,直接对日期型变量用这个函数会触发类型不匹配错误。
  • 第二个代码:mofd()会把日期转成月度日期(%tm格式),配合%tmCYN只能得到YYYYMM格式的年月值,不是你要的YYYYMMDD;而且先转字符串再转回日期属于冗余操作。
  • 第三个代码:date(dt, "YMD")的格式符错误,tostring后得到的dt是"30jan2015"(日-月-年结构),应该用"DMY"作为格式符,用"YMD"无法识别该字符串格式,所以生成缺失值。

正确转换方法

因为date已经是%td格式的日期型变量,直接提取年、月、日或用格式转换即可,无需额外的字符串转日期操作:

方法1:生成数值型YYYYMMDD

直接提取年、月、日并计算组合:

gen date_ymd_num = year(date) * 10000 + month(date) * 100 + day(date)

运行后date_ymd_num会是数值类型的20150130。

方法2:生成字符串型YYYYMMDD

用string()函数配合Stata的日期格式符直接转换:

gen date_ymd_str = string(date, "%tdCCYYNNDD")

如果需要把字符串转成数值,再加一步:

gen date_ymd_num = real(date_ymd_str)

内容的提问来源于stack exchange,提问作者PhDFin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 12:54:23