以下是原始日期的格式:2016年1月31日(MDY)
我想更改此日期的格式
gen date = date(Date, "MDY") //Date is the varname of my original date
format date %td
错误:输入不匹配r(109)
答案 0 :(得分:0)
这对我有用
clear
set obs 1
gen Date = "01/31/2016"
gen date = date(Date, "MDY") //Date is the varname of my original date
format date %td
list
+------------------------+
| Date date |
|------------------------|
1. | 01/31/2016 31jan2016 |
+------------------------+
所以我猜你在做一些与众不同的事情并没有告诉我们。
即,
date()
的结果如果没有错误执行,只能是包含整数的数字变量。
所以它会采用每日日期格式而不会抱怨。
您的错误消息表明date
是字符串。
如果您真的尝试format Date %td
,那可能就是错误。
或者,如果Date
是一个显示格式为%tdN/D/Y
的数字变量,那么2016年1月31日的数字日期将显示为01/31/16
,那么要更改其格式,您不需要也不能它会推动date()
:您只需使用format Date %td
更改格式即可。
您似乎接近显示格式意味着存储类型的谬误。见this paper for a refutation of that idea。