【问题标题】:Referring to an exact date in calculation参考计算中的确切日期
【发布时间】:2018-08-07 14:31:15
【问题描述】:

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

我需要创建一个与 Dec 等效的类似变量。 31 2016 在计算中使用它。

我该怎么做?

【问题讨论】:

    标签: date stata


    【解决方案1】:

    您需要使用daily() 函数,然后相应地使用format 数字变量:

    clear
    set obs 1
    
    generate date = daily("31Dec2016", "DMY")
    format %tdMonDDCCYY date
    
    list
    
         +-----------+
         |      date |
         |-----------|
      1. | Dec312016 |
         +-----------+
    

    在 Stata 的命令提示符下键入 help daily()help format 以了解详细信息。

    【讨论】:

      【解决方案2】:

      我认为您有一个数字每日日期变量。有些人将日期保存为字符串,这在 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
      

      我猜想日期常量最有可能的用途是计算自某个基准日期以来经过的时间。

      【讨论】:

        猜你喜欢
        • 2023-01-12
        • 1970-01-01
        • 1970-01-01
        • 2013-03-25
        • 1970-01-01
        • 2022-01-14
        • 2020-11-19
        • 1970-01-01
        • 2015-07-31
        相关资源
        最近更新 更多