Date 指计算中的确切日期

Date 指计算中的确切日期,date,stata,Date,Stata,我有一个日期变量(dd/mm/yyyy) 我需要创建一个类似的变量,该变量相当于2016年12月31日的,用于计算 如何执行此操作?您需要使用daily()函数,然后格式化相应的数值变量: clear set obs 1 generate date = daily("31Dec2016", "DMY") format %tdMonDDCCYY date list +-----------+ | date | |-----------| 1. |

我有一个日期变量(
dd/mm/yyyy

我需要创建一个类似的变量,该变量相当于2016年12月31日的,用于计算


如何执行此操作?

您需要使用
daily()
函数,然后
格式化
相应的数值变量:

clear
set obs 1

generate date = daily("31Dec2016", "DMY")
format %tdMonDDCCYY date

list

     +-----------+
     |      date |
     |-----------|
  1. | Dec312016 |
     +-----------+

从Stata的命令提示符中键入
help daily()
help format
,了解详细信息。

我认为您有一个数字daily date变量。有些人将日期作为字符串保存,这在Stata中不是很有用,还有其他类型的数字日期变量

像2016年12月31日这样的日期是一个常数,可以计算为

. di mdy(12, 31, 2016)
20819
而用于展示的可能是

. di %td  mdy(12, 31, 2016)
31dec2016
您可以通过其他方式获得相同的结果,例如

. di daily("31 Dec 2016", "DMY")
20819
没有什么能阻止你把这个常数放在变量中,但这只是复制了与你观察到的相同的值很多次,对于大多数目的来说是没有意义的。可以直接使用它,也可以通过使用一些引起共鸣的宏或标量名称使代码更易于理解:

. local Dec_31_2016 = mdy(12, 31, 2016)

. local today = mdy(8, 7, 2018)

. di `today' - `Dec_31_2016'
584
我猜日期常量最有可能的用途是计算自某个基准日期以来经过的时间