我对Stata比较新。我有一个字符串变量time
,它以下列格式记录年份和月份:
2000m1
2000m2
2000m3
...
2015m12
我首先要创建一个看起来相同(但必须是日期格式)的日期变量。其次,我想将年份和月份组件分成两个不同的变量,第三,我想将月份组件重命名为1月,2月等。
对于第一个任务,命令date = date(time, "YM")
返回一个空变量,我无法弄清楚我做错了什么。
答案 0 :(得分:1)
我想出了第一部分。我在这里为任何需要参考的人发布答案:
gen date = ym(real(substr(time, 1,4)),real(substr(time,6,2)))
format date %tm
答案 1 :(得分:1)
功能.on("mouseover", function(d) {
d3.select(this).style("stroke-width", "4px");
var selectedLine = d.name + "-line";
d3.selectAll(".method")
.style("opacity", function(e) {
return (e.id === selectedLine) ? 1.0 : 0.2;
});
})
会产生每日日期,而不是每月日期或任何其他日期不是每日日期。查看从
date()
)
help date()
从本质上讲,它需要被告知日,月和年。您提供了一个月和一年,date(s1,s2[,Y])
Description: the e_d date (days since 01jan1960) corresponding to s1
based on s2 and Y
s1 contains the date, recorded as a string, in virtually
any format. Months can be spelled out, abbreviated (to
three characters), or indicated as numbers; years can
include or exclude the century; blanks and punctuation are
allowed.
s2 is any permutation of M, D, and [##]Y, with their order
defining the order that month, day, and year occur in s1.
##, if specified, indicates the default century for
two-digit years in s1. For instance, s2="MD19Y" would
translate s1="11/15/91" as 15nov1991.
赢了(不能)。
正如在同一地点所记录的那样,date()
是同一功能的同义词,并且使用它来提醒自己(以及代码的读者)它的作用是一种好的做法。
相应地,daily()
提供了一种更简单的解决方案,可以从字符串输入创建月度日期,而不是在您自己的答案中。在您知道正确答案的简单案例中,使用monthly()
(允许display
)尝试使用解决方案。
di
阅读文档至关重要。请参阅. di monthly("2000m1", "YM")
480
. di %tm monthly("2000m1", "YM")
2000m1
作为开始。有很多东西可以解释,因为日期有许多不同的形式,但它们都记录在案。
另请参阅help datetime
了解如何以不同方式显示日期。 (No"重命名"此处涉及。)例如,
help datetime_display_formats
答案 2 :(得分:0)
试试这段代码可能对你有用
string Date1 = String.Format("{0}", Request.Form["date"]);
string Date2 = String.Format("{0}", Request.Form["date1"]);
Date1 = DateTime.Parse(Date1).ToString("yyyy-MM-dd");
Date2 = DateTime.Parse(Date2).ToString("yyyy-MM-dd");