-2

例如,如何从时间戳中删除时间组件:

2014-01-01 12:00:01

成为

2014-01-01 00:00:00
4

2 回答 2

4

似乎您实际上是在询问如何从类型中删除时间组件。timestamp

让我们设置一些测试数据:

CREATE TABLE public.test (
    time_stamp timestamp
);

INSERT INTO public.test (time_stamp) VALUES (SYSDATE());
INSERT INTO public.test (time_stamp) VALUES (SYSDATE());
INSERT INTO public.test (time_stamp) VALUES (SYSDATE());
COMMIT;

转换前的数据如下:

         时间戳
----------------------------
 2014-07-01 21:37:11.454081
 2014-07-01 21:37:15.521172
 2014-07-01 21:37:18.048398

我们将使用该TRUNC函数截断值:

SELECT TRUNC(time_stamp, 'dd') FROM public.test;

这会产生:

        TRUNC
---------------------
 2014-07-01 00:00:00
 2014-07-01 00:00:00
 2014-07-01 00:00:00

如果你喜欢写出来:

SELECT CAST(CAST(time_stamp AS date) AS timestamp) FROM public.test;

或者

SELECT time_stamp::date::timestamp FROM public.test;
于 2014-07-02T02:19:44.363 回答
-2

如果您知道要重置的实际差异,可以使用 timestampadd。对于您的示例,您需要执行两次:

select timestampadd(ss, -1, (timestampadd(hh, -12, '2014-01-01 12:00:01')))

这是关于如何使用 timestampadd 的 vertica 文档的链接: https ://my.vertica.com/docs/5.0/HTML/Master/16090.htm

于 2014-07-01T18:50:14.537 回答