Teradata Tutorial – DateTime Related Functions and Examples
This post summarize the common functions that are used when dealing with DateTime datatypes in Teradata.
Converting String to DateTime
String to Date
SELECT CAST('2017-10-15' AS DATE FORMAT 'YYYY-MM-DD'); SELECT CAST('2017 10 15' AS DATE FORMAT 'YYYYBMMBDD'); SELECT CAST('2017 Oct 15' AS DATE FORMAT 'YYYYBMMMBDD'); SELECT CAST('15, Oct, 2017' AS DATE FORMAT 'DD,BMMM,BYYYY'); -- default ansi format SELECT CAST('2017-10-15' AS DATE); -- use to_date function SELECT to_date('2017-10-15', 'YYYY-MM-DD');
String to Time
-- no seconds SELECT CAST('16h20m' AS TIME(0) FORMAT 'HHhMIm'); -- with seconds and space SELECT CAST('16h 20m 32s' AS TIME(0) FORMAT 'HHhBMImBSSs');
-- with miliseconds
SELECT CAST('16:20:32.2456 ' AS TIME(6));
-- With PM or AM
SELECT CAST('PM 04:20:32.245 ' AS TIME FORMAT 'TBHH:MI:SS.S(4)B');
SELECT CAST('AM 04:20:32.245 ' AS TIME FORMAT 'TBHH:MI:SS.S(4)B');
String to Timestamp
SELECT CAST('2017-10-15 23:59:59.999999' AS TIMESTAMP(6) WITH TIME ZONE); -- with time zone Z SELECT CAST('2017-10-15 23:59:59.999999 +10:00' AS TIMESTAMP(6) WITH TIME ZONE FORMAT 'YYYY-MM-DDBHH:MI:SS.S(6)BZ'); -- time zone in the string SELECT CAST('2017-10-15 23:59:59 +10:00' AS TIMESTAMP(0) FORMAT 'Y4-MM-DDBHH:MI:SS.S(6)BZ');
String to Interval
SELECT CAST('-114-25' AS INTERVAL YEAR(4) TO MONTH); SELECT CAST('-9999-11' AS INTERVAL YEAR(4) TO MONTH); SELECT CAST('9999-11' AS INTERVAL YEAR(4) TO MONTH);
Converting DateTime to String
Conversions
-- using cast SELECT CAST(CURRENT_TIMESTAMP AS VARCHAR(100)); SELECT CAST(CURRENT_DATE AS VARCHAR(100)); -- using functions SELECT to_char(CURRENT_DATE,'YYYY-MM-DD'); SELECT to_char(CURRENT_TIMESTAMP,'MON-DD-YYYY" "HH:MI:SS" "TZH:TZM'); -- time examples SELECT CAST(TIME AS VARCHAR(100)); SELECT CAST(CURRENT_TIME AS VARCHAR(100)); SELECT to_char(CURRENT_TIME,'HH:MI:SS" "TZH:TZM');
Extract Components
SELECT EXTRACT(YEAR
FROM CURRENT_TIMESTAMP); SELECT EXTRACT(MONTH
FROM CURRENT_TIMESTAMP); SELECT EXTRACT(DAY
FROM CURRENT_TIMESTAMP); SELECT EXTRACT(MINUTE
FROM TIME); SELECT EXTRACT(HOUR
FROM TIME); SELECT EXTRACT(SECOND
FROM TIME);
-- extract from interval SELECT EXTRACT(DAY
FROM CAST('99' AS INTERVAL DAY(2)));
DateTime Comparison and Operations
Add Intervals
-- add 10 year and 1 month to the current timestamp SELECT CURRENT_TIMESTAMP + CAST('10-01' AS INTERVAL YEAR(2) TO MONTH); -- minus 10 years from the current date SELECT DATE + CAST('-10-00' AS INTERVAL YEAR(2) TO MONTH); SELECT ADD_MONTHS(DATE, -12*10);
DateTime Comparison
-- Timestamp minus timestamp get one interval SELECT CURRENT_TIMESTAMP - ADD_MONTHS(CURRENT_TIMESTAMP, -133) YEAR(4) TO MONTH; SELECT DATE - (DATE + CAST('99' AS INTERVAL DAY(2))) YEAR(4) TO MONTH;
info Last modified by Administrator 5 years ago
copyright
This page is subject to Site terms.
comment Comments
No comments yet.