How do you remove the time component from a timestamp for instance:
2014-01-01 12:00:01
To become
2014-01-01 00:00:00
How do you remove the time component from a timestamp for instance:
2014-01-01 12:00:01
To become
2014-01-01 00:00:00
It seems like you're actually asking how to remove the time component from a timestamp
type.
Let's set up some test data:
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;
Before the transformation, the data looks like:
time_stamp ---------------------------- 2014-07-01 21:37:11.454081 2014-07-01 21:37:15.521172 2014-07-01 21:37:18.048398
We'll use the TRUNC
function to truncate the value:
SELECT TRUNC(time_stamp, 'dd') FROM public.test;
This produces:
TRUNC --------------------- 2014-07-01 00:00:00 2014-07-01 00:00:00 2014-07-01 00:00:00
If you prefer to write it out:
SELECT CAST(CAST(time_stamp AS date) AS timestamp) FROM public.test;
Or
SELECT time_stamp::date::timestamp FROM public.test;
If you know the actual difference that you want to reset you can use the timestampadd. For your example, you would need to do this twice:
select timestampadd(ss, -1, (timestampadd(hh, -12, '2014-01-01 12:00:01')))
this is the link to the vertica documentation on how to use timestampadd: https://my.vertica.com/docs/5.0/HTML/Master/16090.htm