Stata:将字符串转换为日期

时间:2016-06-07 09:56:31

标签: database string statistics stata

我对Stata比较新。我有一个字符串变量time,它以下列格式记录年份和月份:

2000m1
2000m2
2000m3
...
2015m12

我首先要创建一个看起来相同(但必须是日期格式)的日期变量。其次,我想将年份和月份组件分成两个不同的变量,第三,我想将月份组件重命名为1月,2月等。

对于第一个任务,命令date = date(time, "YM")返回一个空变量,我无法弄清楚我做错了什么。

3 个答案:

答案 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");