実際にはtimestamp(別名datetime)変数のようなものです。私の経験では、ODBCとStataはSIF td/tcフォーマットへの変換をうまく処理するので、通常は文字列として日付/タイムスタンプをキャストする必要はありません。
しかし、おそらく、テキストファイルにエクスポートしてから、代わりにデータを読み込んでいる可能性があります。ここにいくつかのソリューションがあります。
tcタイムスタンプは、1000 * 60 * 60 * 24 = 86,400秒/日(つまりうるう秒を無視)と仮定して、01jan1960 00:00:00.000からのミリ秒単位です。つまり、経過日数を取得するには、その差額をその数で除算する必要があります。例えば
、2016年がうるう年だった:
. display (tc(01jan2017 00:00:00) - tc(01jan2016 00:00:00))/(1000*60*60*24)
366
また、タイムスタンプのうちの日付を作り、除算を省略するdofc()
機能を使用することができます。
. display (dofc(tc(01jan2018 00:00:00)) - dofc(tc(01jan2016 00:00:00)))
731
2017閏年ではありません366 + 365 = 731日となります。
generate
をこれらのすべての機能とともに使用できますが、display
は初期の試行をデバッグする方が簡単です。
あなたは 'daily()'を使ってStataの日付に変換し、その2つを引くことができます。 'help datetime'から直接' date1 - date1 = date1とdate2'の間の日を見ることができます。同じことがdatetimesの場合、2つのdatetimes、week1とweek2の間の週、月などの間にミリ秒を得ることができます。 – ander2ed