提交 92b4f44a authored 作者: Evgenij Ryazanov's avatar Evgenij Ryazanov

Use >> syntax in scripts/functions/timeanddate

上级 323dab55
...@@ -4,29 +4,17 @@ ...@@ -4,29 +4,17 @@
-- --
-- 01-Aug-03 + 3 months = 01-Nov-03 -- 01-Aug-03 + 3 months = 01-Nov-03
SELECT ADD_MONTHS('2003-08-01', 3) AS R; SELECT ADD_MONTHS('2003-08-01', 3);
> R >> 2003-11-01 00:00:00
> -------------------
> 2003-11-01 00:00:00
> rows: 1
-- 31-Jan-03 + 1 month = 28-Feb-2003 -- 31-Jan-03 + 1 month = 28-Feb-2003
SELECT ADD_MONTHS('2003-01-31', 1) AS R; SELECT ADD_MONTHS('2003-01-31', 1);
> R >> 2003-02-28 00:00:00
> -------------------
> 2003-02-28 00:00:00
> rows: 1
-- 21-Aug-2003 - 3 months = 21-May-2003 -- 21-Aug-2003 - 3 months = 21-May-2003
SELECT ADD_MONTHS('2003-08-21', -3) AS R; SELECT ADD_MONTHS('2003-08-21', -3);
> R >> 2003-05-21 00:00:00
> -------------------
> 2003-05-21 00:00:00
> rows: 1
-- 21-Aug-2003 00:00:00.333 - 3 months = 21-May-2003 00:00:00.333 -- 21-Aug-2003 00:00:00.333 - 3 months = 21-May-2003 00:00:00.333
SELECT ADD_MONTHS('2003-08-21 00:00:00.333', -3) AS R; SELECT ADD_MONTHS('2003-08-21 00:00:00.333', -3);
> R >> 2003-05-21 00:00:00.333
> -----------------------
> 2003-05-21 00:00:00.333
> rows: 1
...@@ -9,17 +9,11 @@ create memory table test(id int primary key, name varchar(255)); ...@@ -9,17 +9,11 @@ create memory table test(id int primary key, name varchar(255));
insert into test values(1, 'Hello'); insert into test values(1, 'Hello');
> update count: 1 > update count: 1
select dateadd('month', 1, timestamp '2003-01-31 10:20:30.012345678') d1 from test; select dateadd('month', 1, timestamp '2003-01-31 10:20:30.012345678') from test;
> D1 >> 2003-02-28 10:20:30.012345678
> -----------------------------
> 2003-02-28 10:20:30.012345678
> rows: 1
select dateadd('year', -1, timestamp '2000-02-29 10:20:30.012345678') d1 from test; select dateadd('year', -1, timestamp '2000-02-29 10:20:30.012345678') from test;
> D1 >> 1999-02-28 10:20:30.012345678
> -----------------------------
> 1999-02-28 10:20:30.012345678
> rows: 1
drop table test; drop table test;
> ok > ok
...@@ -30,47 +24,26 @@ create table test(d date, t time, ts timestamp); ...@@ -30,47 +24,26 @@ create table test(d date, t time, ts timestamp);
insert into test values(date '2001-01-01', time '01:00:00', timestamp '2010-01-01 00:00:00'); insert into test values(date '2001-01-01', time '01:00:00', timestamp '2010-01-01 00:00:00');
> update count: 1 > update count: 1
select ts + t x from test; select ts + t from test;
> X >> 2010-01-01 01:00:00
> -------------------
> 2010-01-01 01:00:00
> rows: 1
select ts + t + t - t x from test; select ts + t + t - t x from test;
> X >> 2010-01-01 01:00:00
> -------------------
> 2010-01-01 01:00:00
> rows: 1
select ts + t * 0.5 x from test; select ts + t * 0.5 x from test;
> X >> 2010-01-01 00:30:00
> -------------------
> 2010-01-01 00:30:00
> rows: 1
select ts + 0.5 x from test; select ts + 0.5 x from test;
> X >> 2010-01-01 12:00:00
> -------------------
> 2010-01-01 12:00:00
> rows: 1
select ts - 1.5 x from test; select ts - 1.5 x from test;
> X >> 2009-12-30 12:00:00
> -------------------
> 2009-12-30 12:00:00
> rows: 1
select ts + 0.5 * t + t - t x from test; select ts + 0.5 * t + t - t x from test;
> X >> 2010-01-01 00:30:00
> -------------------
> 2010-01-01 00:30:00
> rows: 1
select ts + t / 0.5 x from test; select ts + t / 0.5 x from test;
> X >> 2010-01-01 02:00:00
> -------------------
> 2010-01-01 02:00:00
> rows: 1
select d + t, t + d - t x from test; select d + t, t + d - t x from test;
> T + D X > T + D X
...@@ -85,25 +58,16 @@ select 1 + d + 1, d - 1, 2 + ts + 2, ts - 2 from test; ...@@ -85,25 +58,16 @@ select 1 + d + 1, d - 1, 2 + ts + 2, ts - 2 from test;
> rows: 1 > rows: 1
select 1 + d + t + 1 from test; select 1 + d + t + 1 from test;
> DATEADD('DAY', 1, (T + DATEADD('DAY', 1, D))) >> 2001-01-03 01:00:00
> ---------------------------------------------
> 2001-01-03 01:00:00
> rows: 1
select ts - t - 2 from test; select ts - t - 2 from test;
> DATEADD('DAY', -2, (TS - T)) >> 2009-12-29 23:00:00
> ----------------------------
> 2009-12-29 23:00:00
> rows: 1
drop table test; drop table test;
> ok > ok
call dateadd('MS', 1, TIMESTAMP '2001-02-03 04:05:06.789001'); call dateadd('MS', 1, TIMESTAMP '2001-02-03 04:05:06.789001');
> TIMESTAMP '2001-02-03 04:05:06.790001' >> 2001-02-03 04:05:06.790001
> --------------------------------------
> 2001-02-03 04:05:06.790001
> rows: 1
SELECT DATEADD('MICROSECOND', 1, TIME '10:00:01'), DATEADD('MCS', 1, TIMESTAMP '2010-10-20 10:00:01.1'); SELECT DATEADD('MICROSECOND', 1, TIME '10:00:01'), DATEADD('MCS', 1, TIMESTAMP '2010-10-20 10:00:01.1');
> TIME '10:00:01.000001' TIMESTAMP '2010-10-20 10:00:01.100001' > TIME '10:00:01.000001' TIMESTAMP '2010-10-20 10:00:01.100001'
...@@ -118,52 +82,29 @@ SELECT DATEADD('NANOSECOND', 1, TIME '10:00:01'), DATEADD('NS', 1, TIMESTAMP '20 ...@@ -118,52 +82,29 @@ SELECT DATEADD('NANOSECOND', 1, TIME '10:00:01'), DATEADD('NS', 1, TIMESTAMP '20
> rows: 1 > rows: 1
SELECT DATEADD('HOUR', 1, DATE '2010-01-20'); SELECT DATEADD('HOUR', 1, DATE '2010-01-20');
> TIMESTAMP '2010-01-20 01:00:00' >> 2010-01-20 01:00:00
> -------------------------------
> 2010-01-20 01:00:00
> rows: 1
SELECT DATEADD('MINUTE', 30, TIME '12:30:55'); SELECT DATEADD('MINUTE', 30, TIME '12:30:55');
> TIME '13:00:55' >> 13:00:55
> ---------------
> 13:00:55
> rows: 1
SELECT DATEADD('DAY', 1, TIME '12:30:55'); SELECT DATEADD('DAY', 1, TIME '12:30:55');
> exception > exception
SELECT DATEADD('QUARTER', 1, DATE '2010-11-16'); SELECT DATEADD('QUARTER', 1, DATE '2010-11-16');
> DATE '2011-02-16' >> 2011-02-16
> -----------------
> 2011-02-16
> rows: 1
SELECT DATEADD('DAY', 10, TIMESTAMP WITH TIME ZONE '2000-01-05 15:00:30.123456789-10'); SELECT DATEADD('DAY', 10, TIMESTAMP WITH TIME ZONE '2000-01-05 15:00:30.123456789-10');
> TIMESTAMP WITH TIME ZONE '2000-01-15 15:00:30.123456789-10' >> 2000-01-15 15:00:30.123456789-10
> -----------------------------------------------------------
> 2000-01-15 15:00:30.123456789-10
> rows: 1
SELECT TIMESTAMPADD('DAY', 10, TIMESTAMP '2000-01-05 15:00:30.123456789'); SELECT TIMESTAMPADD('DAY', 10, TIMESTAMP '2000-01-05 15:00:30.123456789');
> TIMESTAMP '2000-01-15 15:00:30.123456789' >> 2000-01-15 15:00:30.123456789
> -----------------------------------------
> 2000-01-15 15:00:30.123456789
> rows: 1
SELECT TIMESTAMPADD('TIMEZONE_HOUR', 1, TIMESTAMP WITH TIME ZONE '2010-01-01 10:00:00+07:30') AS T; SELECT TIMESTAMPADD('TIMEZONE_HOUR', 1, TIMESTAMP WITH TIME ZONE '2010-01-01 10:00:00+07:30');
> T >> 2010-01-01 10:00:00+08:30
> -------------------------
> 2010-01-01 10:00:00+08:30
> rows: 1
SELECT TIMESTAMPADD('TIMEZONE_MINUTE', -45, TIMESTAMP WITH TIME ZONE '2010-01-01 10:00:00+07:30') AS T; SELECT TIMESTAMPADD('TIMEZONE_MINUTE', -45, TIMESTAMP WITH TIME ZONE '2010-01-01 10:00:00+07:30');
> T >> 2010-01-01 10:00:00+06:45
> -------------------------
> 2010-01-01 10:00:00+06:45
> rows: 1
SELECT DATEADD(HOUR, 1, TIME '23:00:00') AS T; SELECT DATEADD(HOUR, 1, TIME '23:00:00');
> T >> 00:00:00
> --------
> 00:00:00
> rows: 1 > rows: 1
...@@ -9,89 +9,47 @@ create memory table test(id int primary key, name varchar(255)); ...@@ -9,89 +9,47 @@ create memory table test(id int primary key, name varchar(255));
insert into test values(1, 'Hello'); insert into test values(1, 'Hello');
> update count: 1 > update count: 1
select datediff('yy', timestamp '2003-12-01 10:20:30.0', timestamp '2004-01-01 10:00:00.0') d1 from test; select datediff('yy', timestamp '2003-12-01 10:20:30.0', timestamp '2004-01-01 10:00:00.0') from test;
> D1 >> 1
> --
> 1
> rows: 1
select datediff('year', timestamp '2003-12-01 10:20:30.0', timestamp '2004-01-01 10:00:00.0') d1 from test; select datediff('year', timestamp '2003-12-01 10:20:30.0', timestamp '2004-01-01 10:00:00.0') from test;
> D1 >> 1
> --
> 1
> rows: 1
select datediff('mm', timestamp '2003-11-01 10:20:30.0', timestamp '2004-01-01 10:00:00.0') d2 from test; select datediff('mm', timestamp '2003-11-01 10:20:30.0', timestamp '2004-01-01 10:00:00.0') from test;
> D2 >> 2
> --
> 2
> rows: 1
select datediff('month', timestamp '2003-11-01 10:20:30.0', timestamp '2004-01-01 10:00:00.0') d2 from test; select datediff('month', timestamp '2003-11-01 10:20:30.0', timestamp '2004-01-01 10:00:00.0') from test;
> D2 >> 2
> --
> 2
> rows: 1
select datediff('dd', timestamp '2004-01-01 10:20:30.0', timestamp '2004-01-05 10:00:00.0') d4 from test; select datediff('dd', timestamp '2004-01-01 10:20:30.0', timestamp '2004-01-05 10:00:00.0') from test;
> D4 >> 4
> --
> 4
> rows: 1
select datediff('day', timestamp '2004-01-01 10:20:30.0', timestamp '2004-01-05 10:00:00.0') d4 from test; select datediff('day', timestamp '2004-01-01 10:20:30.0', timestamp '2004-01-05 10:00:00.0') from test;
> D4 >> 4
> --
> 4
> rows: 1
select datediff('hh', timestamp '2004-01-01 10:20:30.0', timestamp '2004-01-02 10:00:00.0') d24 from test; select datediff('hh', timestamp '2004-01-01 10:20:30.0', timestamp '2004-01-02 10:00:00.0') from test;
> D24 >> 24
> ---
> 24
> rows: 1
select datediff('hour', timestamp '2004-01-01 10:20:30.0', timestamp '2004-01-02 10:00:00.0') d24 from test; select datediff('hour', timestamp '2004-01-01 10:20:30.0', timestamp '2004-01-02 10:00:00.0') from test;
> D24 >> 24
> ---
> 24
> rows: 1
select datediff('mi', timestamp '2004-01-01 10:20:30.0', timestamp '2004-01-01 10:00:00.0') d20 from test; select datediff('mi', timestamp '2004-01-01 10:20:30.0', timestamp '2004-01-01 10:00:00.0') from test;
> D20 >> -20
> ---
> -20
> rows: 1
select datediff('minute', timestamp '2004-01-01 10:20:30.0', timestamp '2004-01-01 10:00:00.0') d20 from test; select datediff('minute', timestamp '2004-01-01 10:20:30.0', timestamp '2004-01-01 10:00:00.0') from test;
> D20 >> -20
> ---
> -20
> rows: 1
select datediff('ss', timestamp '2004-01-01 10:00:00.5', timestamp '2004-01-01 10:00:01.0') d1 from test; select datediff('ss', timestamp '2004-01-01 10:00:00.5', timestamp '2004-01-01 10:00:01.0') from test;
> D1 >> 1
> --
> 1
> rows: 1
select datediff('second', timestamp '2004-01-01 10:00:00.5', timestamp '2004-01-01 10:00:01.0') d1 from test; select datediff('second', timestamp '2004-01-01 10:00:00.5', timestamp '2004-01-01 10:00:01.0') from test;
> D1 >> 1
> --
> 1
> rows: 1
select datediff('ms', timestamp '2004-01-01 10:00:00.5', timestamp '2004-01-01 10:00:01.0') d50x from test; select datediff('ms', timestamp '2004-01-01 10:00:00.5', timestamp '2004-01-01 10:00:01.0') from test;
> D50X >> 500
> ----
> 500
> rows: 1
select datediff('millisecond', timestamp '2004-01-01 10:00:00.5', timestamp '2004-01-01 10:00:01.0') d50x from test; select datediff('millisecond', timestamp '2004-01-01 10:00:00.5', timestamp '2004-01-01 10:00:01.0') from test;
> D50X >> 500
> ----
> 500
> rows: 1
SELECT DATEDIFF('SECOND', '1900-01-01 00:00:00.001', '1900-01-01 00:00:00.002'), DATEDIFF('SECOND', '2000-01-01 00:00:00.001', '2000-01-01 00:00:00.002'); SELECT DATEDIFF('SECOND', '1900-01-01 00:00:00.001', '1900-01-01 00:00:00.002'), DATEDIFF('SECOND', '2000-01-01 00:00:00.001', '2000-01-01 00:00:00.002');
> 0 0 > 0 0
...@@ -154,10 +112,7 @@ call datediff('MS', TIMESTAMP '2001-02-03 04:05:06.789001', TIMESTAMP '2001-02-0 ...@@ -154,10 +112,7 @@ call datediff('MS', TIMESTAMP '2001-02-03 04:05:06.789001', TIMESTAMP '2001-02-0
> rows: 1 > rows: 1
call datediff('MS', TIMESTAMP '1900-01-01 00:00:01.000', TIMESTAMP '2008-01-01 00:00:00.000'); call datediff('MS', TIMESTAMP '1900-01-01 00:00:01.000', TIMESTAMP '2008-01-01 00:00:00.000');
> 3408134399000 >> 3408134399000
> -------------
> 3408134399000
> rows: 1
SELECT DATEDIFF('MICROSECOND', '2006-01-01 00:00:00.0000000', '2006-01-01 00:00:00.123456789'), SELECT DATEDIFF('MICROSECOND', '2006-01-01 00:00:00.0000000', '2006-01-01 00:00:00.123456789'),
DATEDIFF('MCS', '2006-01-01 00:00:00.0000000', '2006-01-01 00:00:00.123456789'), DATEDIFF('MCS', '2006-01-01 00:00:00.0000000', '2006-01-01 00:00:00.123456789'),
...@@ -212,46 +167,24 @@ SELECT DATEDIFF('WEEK', DATE '1969-12-28', DATE '1969-12-29'), DATEDIFF('ISO_WEE ...@@ -212,46 +167,24 @@ SELECT DATEDIFF('WEEK', DATE '1969-12-28', DATE '1969-12-29'), DATEDIFF('ISO_WEE
> rows: 1 > rows: 1
SELECT DATEDIFF('QUARTER', DATE '2009-12-30', DATE '2009-12-31'); SELECT DATEDIFF('QUARTER', DATE '2009-12-30', DATE '2009-12-31');
> 0 >> 0
> -
> 0
> rows: 1
SELECT DATEDIFF('QUARTER', DATE '2010-01-01', DATE '2009-12-31'); SELECT DATEDIFF('QUARTER', DATE '2010-01-01', DATE '2009-12-31');
> -1 >> -1
> --
> -1
> rows: 1
SELECT DATEDIFF('QUARTER', DATE '2010-01-01', DATE '2010-01-02'); SELECT DATEDIFF('QUARTER', DATE '2010-01-01', DATE '2010-01-02');
> 0 >> 0
> -
> 0
> rows: 1
SELECT DATEDIFF('QUARTER', DATE '2010-01-01', DATE '2010-03-31'); SELECT DATEDIFF('QUARTER', DATE '2010-01-01', DATE '2010-03-31');
> 0 >> 0
> -
> 0
> rows: 1
SELECT DATEDIFF('QUARTER', DATE '-1000-01-01', DATE '2000-01-01'); SELECT DATEDIFF('QUARTER', DATE '-1000-01-01', DATE '2000-01-01');
> 12000 >> 12000
> -----
> 12000
> rows: 1
SELECT DATEDIFF('TIMEZONE_HOUR', TIMESTAMP WITH TIME ZONE '2010-01-01 10:00:00+01', SELECT DATEDIFF('TIMEZONE_HOUR', TIMESTAMP WITH TIME ZONE '2010-01-01 10:00:00+01',
TIMESTAMP WITH TIME ZONE '2012-02-02 12:00:00+02'); TIMESTAMP WITH TIME ZONE '2012-02-02 12:00:00+02');
> 1 >> 1
> -
> 1
> rows: 1
SELECT DATEDIFF('TIMEZONE_MINUTE', TIMESTAMP WITH TIME ZONE '2010-01-01 10:00:00+01:15', SELECT DATEDIFF('TIMEZONE_MINUTE', TIMESTAMP WITH TIME ZONE '2010-01-01 10:00:00+01:15',
TIMESTAMP WITH TIME ZONE '2012-02-02 12:00:00+02'); TIMESTAMP WITH TIME ZONE '2012-02-02 12:00:00+02');
> 45 >> 45
> --
> 45
> rows: 1
...@@ -9,11 +9,8 @@ create memory table test(id int primary key, name varchar(255)); ...@@ -9,11 +9,8 @@ create memory table test(id int primary key, name varchar(255));
insert into test values(1, 'Hello'); insert into test values(1, 'Hello');
> update count: 1 > update count: 1
select dayofmonth(date '2005-09-12') d12 from test; select dayofmonth(date '2005-09-12') from test;
> D12 >> 12
> ---
> 12
> rows: 1
drop table test; drop table test;
> ok > ok
......
...@@ -9,8 +9,5 @@ create memory table test(id int primary key, name varchar(255)); ...@@ -9,8 +9,5 @@ create memory table test(id int primary key, name varchar(255));
insert into test values(1, 'Hello'); insert into test values(1, 'Hello');
> update count: 1 > update count: 1
select dayofweek(date '2005-09-12') d2 from test; select dayofweek(date '2005-09-12') from test;
> D2 >> 2
> --
> 2
> rows: 1
...@@ -10,7 +10,4 @@ insert into test values(1, 'Hello'); ...@@ -10,7 +10,4 @@ insert into test values(1, 'Hello');
> update count: 1 > update count: 1
select dayofyear(date '2005-01-01') d1 from test; select dayofyear(date '2005-01-01') d1 from test;
> D1 >> 1
> --
> 1
> rows: 1
...@@ -9,8 +9,5 @@ create memory table test(id int primary key, name varchar(255)); ...@@ -9,8 +9,5 @@ create memory table test(id int primary key, name varchar(255));
insert into test values(1, 'Hello'); insert into test values(1, 'Hello');
> update count: 1 > update count: 1
select dayname(date '2005-09-12') d_monday from test; select dayname(date '2005-09-12') from test;
> D_MONDAY >> Monday
> --------
> Monday
> rows: 1
...@@ -18,64 +18,52 @@ SELECT EXTRACT (NANOSECOND FROM TIME '10:00:00.123456789'), ...@@ -18,64 +18,52 @@ SELECT EXTRACT (NANOSECOND FROM TIME '10:00:00.123456789'),
> rows: 1 > rows: 1
select EXTRACT (EPOCH from time '00:00:00'); select EXTRACT (EPOCH from time '00:00:00');
> 0 >> 0
select EXTRACT (EPOCH from time '10:00:00'); select EXTRACT (EPOCH from time '10:00:00');
> 36000 >> 36000
select EXTRACT (EPOCH from time '10:00:00.123456'); select EXTRACT (EPOCH from time '10:00:00.123456');
> 36000.123456 >> 36000.123456
select EXTRACT (EPOCH from date '1970-01-01'); select EXTRACT (EPOCH from date '1970-01-01');
> 0 >> 0
select EXTRACT (EPOCH from date '2000-01-03'); select EXTRACT (EPOCH from date '2000-01-03');
> 946857600 >> 946857600
select EXTRACT (EPOCH from timestamp '1970-01-01 00:00:00'); select EXTRACT (EPOCH from timestamp '1970-01-01 00:00:00');
> 0 >> 0
select EXTRACT (EPOCH from timestamp '1970-01-03 12:00:00.123456'); select EXTRACT (EPOCH from timestamp '1970-01-03 12:00:00.123456');
> 216000.123456 >> 216000.123456
select EXTRACT (EPOCH from timestamp '2000-01-03 12:00:00.123456'); select EXTRACT (EPOCH from timestamp '2000-01-03 12:00:00.123456');
> 946900800.123456 >> 946900800.123456
select EXTRACT (EPOCH from timestamp '2500-01-03 12:00:00.654321'); select EXTRACT (EPOCH from timestamp '2500-01-03 12:00:00.654321');
> 16725441600.654321 >> 16725441600.654321
select EXTRACT (EPOCH from timestamp with time zone '1970-01-01 00:00:00+05'); select EXTRACT (EPOCH from timestamp with time zone '1970-01-01 00:00:00+05');
> -18000 >> -18000
select EXTRACT (EPOCH from timestamp with time zone '1970-01-03 12:00:00.123456+05'); select EXTRACT (EPOCH from timestamp with time zone '1970-01-03 12:00:00.123456+05');
> 198000.123456 >> 198000.123456
select EXTRACT (EPOCH from timestamp with time zone '2000-01-03 12:00:00.123456+05'); select EXTRACT (EPOCH from timestamp with time zone '2000-01-03 12:00:00.123456+05');
> 946882800.123456 >> 946882800.123456
select extract(EPOCH from '2001-02-03 14:15:16'); select extract(EPOCH from '2001-02-03 14:15:16');
> 981209716 >> 981209716
SELECT EXTRACT(TIMEZONE_HOUR FROM TIMESTAMP WITH TIME ZONE '2010-01-02 5:00:00+07:15'); SELECT EXTRACT(TIMEZONE_HOUR FROM TIMESTAMP WITH TIME ZONE '2010-01-02 5:00:00+07:15');
> 7 >> 7
> -
> 7
> rows: 1
SELECT EXTRACT(TIMEZONE_HOUR FROM TIMESTAMP WITH TIME ZONE '2010-01-02 5:00:00-08:30'); SELECT EXTRACT(TIMEZONE_HOUR FROM TIMESTAMP WITH TIME ZONE '2010-01-02 5:00:00-08:30');
> -8 >> -8
> --
> -8
> rows: 1
SELECT EXTRACT(TIMEZONE_MINUTE FROM TIMESTAMP WITH TIME ZONE '2010-01-02 5:00:00+07:15'); SELECT EXTRACT(TIMEZONE_MINUTE FROM TIMESTAMP WITH TIME ZONE '2010-01-02 5:00:00+07:15');
> 15 >> 15
> --
> 15
> rows: 1
SELECT EXTRACT(TIMEZONE_MINUTE FROM TIMESTAMP WITH TIME ZONE '2010-01-02 5:00:00-08:30'); SELECT EXTRACT(TIMEZONE_MINUTE FROM TIMESTAMP WITH TIME ZONE '2010-01-02 5:00:00-08:30');
> -30 >> -30
> ---
> -30
> rows: 1
...@@ -4,43 +4,22 @@ ...@@ -4,43 +4,22 @@
-- --
CALL FORMATDATETIME(PARSEDATETIME('2001-02-03 04:05:06 GMT', 'yyyy-MM-dd HH:mm:ss z', 'en', 'GMT'), 'EEE, d MMM yyyy HH:mm:ss z', 'en', 'GMT'); CALL FORMATDATETIME(PARSEDATETIME('2001-02-03 04:05:06 GMT', 'yyyy-MM-dd HH:mm:ss z', 'en', 'GMT'), 'EEE, d MMM yyyy HH:mm:ss z', 'en', 'GMT');
> 'Sat, 3 Feb 2001 04:05:06 GMT' >> Sat, 3 Feb 2001 04:05:06 GMT
> ------------------------------
> Sat, 3 Feb 2001 04:05:06 GMT
> rows: 1
CALL FORMATDATETIME(TIMESTAMP '2001-02-03 04:05:06', 'yyyy-MM-dd HH:mm:ss'); CALL FORMATDATETIME(TIMESTAMP '2001-02-03 04:05:06', 'yyyy-MM-dd HH:mm:ss');
> '2001-02-03 04:05:06' >> 2001-02-03 04:05:06
> ---------------------
> 2001-02-03 04:05:06
> rows: 1
CALL FORMATDATETIME(TIMESTAMP '2001-02-03 04:05:06', 'MM/dd/yyyy HH:mm:ss'); CALL FORMATDATETIME(TIMESTAMP '2001-02-03 04:05:06', 'MM/dd/yyyy HH:mm:ss');
> '02/03/2001 04:05:06' >> 02/03/2001 04:05:06
> ---------------------
> 02/03/2001 04:05:06
> rows: 1
CALL FORMATDATETIME(TIMESTAMP '2001-02-03 04:05:06', 'd. MMMM yyyy', 'de'); CALL FORMATDATETIME(TIMESTAMP '2001-02-03 04:05:06', 'd. MMMM yyyy', 'de');
> '3. Februar 2001' >> 3. Februar 2001
> -----------------
> 3. Februar 2001
> rows: 1
CALL FORMATDATETIME(PARSEDATETIME('Sat, 3 Feb 2001 04:05:06 GMT', 'EEE, d MMM yyyy HH:mm:ss z', 'en', 'GMT'), 'yyyy-MM-dd HH:mm:ss', 'en', 'GMT'); CALL FORMATDATETIME(PARSEDATETIME('Sat, 3 Feb 2001 04:05:06 GMT', 'EEE, d MMM yyyy HH:mm:ss z', 'en', 'GMT'), 'yyyy-MM-dd HH:mm:ss', 'en', 'GMT');
> '2001-02-03 04:05:06' >> 2001-02-03 04:05:06
> ---------------------
> 2001-02-03 04:05:06
> rows: 1
SELECT FORMATDATETIME(TIMESTAMP WITH TIME ZONE '2010-05-06 07:08:09.123Z', 'yyyy-MM-dd HH:mm:ss.SSS z') AS S; SELECT FORMATDATETIME(TIMESTAMP WITH TIME ZONE '2010-05-06 07:08:09.123Z', 'yyyy-MM-dd HH:mm:ss.SSS z');
> S >> 2010-05-06 07:08:09.123 UTC
> ---------------------------
> 2010-05-06 07:08:09.123 UTC
> rows: 1
SELECT FORMATDATETIME(TIMESTAMP WITH TIME ZONE '2010-05-06 07:08:09.123+13:30', 'yyyy-MM-dd HH:mm:ss.SSS z') AS S; SELECT FORMATDATETIME(TIMESTAMP WITH TIME ZONE '2010-05-06 07:08:09.123+13:30', 'yyyy-MM-dd HH:mm:ss.SSS z');
> S >> 2010-05-06 07:08:09.123 GMT+13:30
> ---------------------------------
> 2010-05-06 07:08:09.123 GMT+13:30
> rows: 1
...@@ -9,11 +9,8 @@ create memory table test(id int primary key, name varchar(255)); ...@@ -9,11 +9,8 @@ create memory table test(id int primary key, name varchar(255));
insert into test values(1, 'Hello'); insert into test values(1, 'Hello');
> update count: 1 > update count: 1
select hour(time '23:10:59') d23 from test; select hour(time '23:10:59') from test;
> D23 >> 23
> ---
> 23
> rows: 1
drop table test; drop table test;
> ok > ok
......
...@@ -9,8 +9,5 @@ create memory table test(id int primary key, name varchar(255)); ...@@ -9,8 +9,5 @@ create memory table test(id int primary key, name varchar(255));
insert into test values(1, 'Hello'); insert into test values(1, 'Hello');
> update count: 1 > update count: 1
select minute(timestamp '2005-01-01 23:10:59') d10 from test; select minute(timestamp '2005-01-01 23:10:59') from test;
> D10 >> 10
> ---
> 10
> rows: 1
...@@ -9,8 +9,5 @@ create memory table test(id int primary key, name varchar(255)); ...@@ -9,8 +9,5 @@ create memory table test(id int primary key, name varchar(255));
insert into test values(1, 'Hello'); insert into test values(1, 'Hello');
> update count: 1 > update count: 1
select month(date '2005-09-25') d9 from test; select month(date '2005-09-25') from test;
> D9 >> 9
> --
> 9
> rows: 1
...@@ -9,8 +9,5 @@ create memory table test(id int primary key, name varchar(255)); ...@@ -9,8 +9,5 @@ create memory table test(id int primary key, name varchar(255));
insert into test values(1, 'Hello'); insert into test values(1, 'Hello');
> update count: 1 > update count: 1
select monthname(date '2005-09-12') d_sept from test; select monthname(date '2005-09-12') from test;
> D_SEPT >> September
> ---------
> September
> rows: 1
...@@ -4,14 +4,7 @@ ...@@ -4,14 +4,7 @@
-- --
CALL PARSEDATETIME('3. Februar 2001', 'd. MMMM yyyy', 'de'); CALL PARSEDATETIME('3. Februar 2001', 'd. MMMM yyyy', 'de');
> TIMESTAMP '2001-02-03 00:00:00' >> 2001-02-03 00:00:00
> -------------------------------
> 2001-02-03 00:00:00
> rows: 1
CALL PARSEDATETIME('02/03/2001 04:05:06', 'MM/dd/yyyy HH:mm:ss'); CALL PARSEDATETIME('02/03/2001 04:05:06', 'MM/dd/yyyy HH:mm:ss');
> TIMESTAMP '2001-02-03 04:05:06' >> 2001-02-03 04:05:06
> -------------------------------
> 2001-02-03 04:05:06
> rows: 1
...@@ -9,8 +9,5 @@ create memory table test(id int primary key, name varchar(255)); ...@@ -9,8 +9,5 @@ create memory table test(id int primary key, name varchar(255));
insert into test values(1, 'Hello'); insert into test values(1, 'Hello');
> update count: 1 > update count: 1
select quarter(date '2005-09-01') d3 from test; select quarter(date '2005-09-01') from test;
> D3 >> 3
> --
> 3
> rows: 1
...@@ -9,8 +9,5 @@ create memory table test(id int primary key, name varchar(255)); ...@@ -9,8 +9,5 @@ create memory table test(id int primary key, name varchar(255));
insert into test values(1, 'Hello'); insert into test values(1, 'Hello');
> update count: 1 > update count: 1
select second(timestamp '2005-01-01 23:10:59') d59 from test; select second(timestamp '2005-01-01 23:10:59') from test;
> D59 >> 59
> ---
> 59
> rows: 1
...@@ -3,26 +3,14 @@ ...@@ -3,26 +3,14 @@
-- Initial Developer: H2 Group -- Initial Developer: H2 Group
-- --
select trunc('2015-05-29 15:00:00') R; select trunc('2015-05-29 15:00:00');
> R >> 2015-05-29 00:00:00
> -------------------
> 2015-05-29 00:00:00
> rows: 1
select trunc('2015-05-29') R; select trunc('2015-05-29');
> R >> 2015-05-29 00:00:00
> -------------------
> 2015-05-29 00:00:00
> rows: 1
select trunc(timestamp '2000-01-01 10:20:30.0') R; select trunc(timestamp '2000-01-01 10:20:30.0');
> R >> 2000-01-01 00:00:00
> -------------------
> 2000-01-01 00:00:00
> rows: 1
select trunc(timestamp '2001-01-01 14:00:00.0') R; select trunc(timestamp '2001-01-01 14:00:00.0');
> R >> 2001-01-01 00:00:00
> -------------------
> 2001-01-01 00:00:00
> rows: 1
...@@ -9,8 +9,5 @@ create memory table test(id int primary key, name varchar(255)); ...@@ -9,8 +9,5 @@ create memory table test(id int primary key, name varchar(255));
insert into test values(1, 'Hello'); insert into test values(1, 'Hello');
> update count: 1 > update count: 1
select week(date '2003-01-09') d1 from test; select week(date '2003-01-09') from test;
> D1 >> 2
> --
> 2
> rows: 1
...@@ -9,8 +9,5 @@ create memory table test(id int primary key, name varchar(255)); ...@@ -9,8 +9,5 @@ create memory table test(id int primary key, name varchar(255));
insert into test values(1, 'Hello'); insert into test values(1, 'Hello');
> update count: 1 > update count: 1
select year(date '2005-01-01') d2005 from test; select year(date '2005-01-01') from test;
> D2005 >> 2005
> -----
> 2005
> rows: 1
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论