我希望能够像做在MonetDB中,我怎样才能得到一个整数的日期?
SELECT cast(my_date_col AS int) FROM my_table;
我想获得它MonetDB内部使用,整即价值,如果你调查了BAT结构,得到了在适当的元素,你会发现代码在MonetDB的GDK中。现在,AFAICT,这个内部价值是自“Epoch”以来的天数,即“0年”的1月1日(因此1月3日的第2年将是366 + 365 + 2 = 732)。
我能实际管理的最好的是
SELECT my_date_col AS int - cast('1-1-1' AS date) - 366 FROM my_table;
由于MonetDB不会接受“零年”的日期。这是一个很丑陋的黑客,我想做得更好。帮我?
我没有看到任何东西的[monetdb文档](https://www.monetdb.org/Documentation/SQLreference/Temporal),其表明它支持一个划时代的数据类型。你有参考吗? –
@ MikeSherrill'CatRecall':我不确定你的意思。时期(在这种情况下)是您将时间或日期计算为usecs,msecs,或days或whatnot的偏移量的时间点。在传统的UNIX系统上,Epoch是1970年1月1日。 – einpoklum
“Epoch”本质上是一个整数。日期本质上不是*整数,并且不能在标准SQL中转换为整数。你只是想从1970-01-01到my_date_col的天数? –