我将Stata(统计数据包)中的数据块插入到Teradata数据库中。我无法将日期和时间戳从Stata原生格式转换为Teradata。将数据插入Teradata时转换日期和时间戳
Stata存储自01/01/1960以来的日期,因此01jan1960为0并且02jan1960为1.时间戳记自01jan1960 00:00:00:00开始以毫秒为单位存储,因此1000为01jan1960 00:00:01。这里有一些例子:
timestamp Stata's tstamp date Stata's date
2015-04-13 03:07:08 1744513628000 2015-04-13 20191
2015-04-14 19:55:43 1744660543000 2015-04-14 20192
2015-04-08 11:41:39 1744112499000 2015-04-08 20186
2015-04-15 06:53:34 1744700014000 2015-04-15 20193
我试过2种方法。第一个涉及插入,然后一旦数据被插入做这样的事情之前转换日期/时间戳在Stata字符串:
ALTER TABLE mytable ALTER date_variable DATETIME
然而,我无法弄清楚如何从文档做第二部分我已经搜索了各种论坛。
第二种方法是将日期和时间戳留为整数,然后在插入整数后再进行一些转换。也许我还可以在Stata预转换日期TD的内部格式:
gen td_date = ((year(stata_dt)-1900)*10000 + month(stata_dt)*100 + day(stata_dt))
但是,我不知道对时间戳的公式是什么。我也不知道如何做第二部分(使整数成为日期/时间戳)。