mirror of
https://github.com/MariaDB/server.git
synced 2025-01-23 15:24:16 +01:00
f095274fe8
BitKeeper/etc/ignore: auto-union BitKeeper/etc/logging_ok: auto-union BitKeeper/triggers/post-commit: Auto merged Docs/Support/texi2html: Auto merged Makefile.am: Auto merged client/Makefile.am: Auto merged client/mysql.cc: Auto merged client/mysqldump.c: Auto merged include/my_base.h: Auto merged include/my_global.h: Auto merged include/my_pthread.h: Auto merged include/my_sys.h: Auto merged include/my_time.h: Auto merged include/mysql.h: Auto merged include/mysql_com.h: Auto merged innobase/buf/buf0buf.c: Auto merged innobase/include/row0mysql.h: Auto merged innobase/row/row0sel.c: Auto merged libmysql/libmysql.c: Auto merged libmysqld/examples/Makefile.am: Auto merged myisam/mi_check.c: Auto merged mysql-test/include/ps_modify.inc: Auto merged mysql-test/install_test_db.sh: Auto merged mysql-test/r/alter_table.result: Auto merged mysql-test/r/auto_increment.result: Auto merged mysql-test/r/bdb.result: Auto merged mysql-test/r/ctype_latin1_de.result: Auto merged mysql-test/r/ctype_recoding.result: Auto merged mysql-test/r/fulltext.result: Auto merged mysql-test/r/func_gconcat.result: Auto merged mysql-test/r/func_group.result: Auto merged mysql-test/r/func_if.result: Auto merged mysql-test/t/derived.test: Auto merged mysql-test/t/insert.test: merge with 4.1 Fixed test case to not use 'if exists' when it shouldn't mysql-test/t/range.test: merge with 4.1 Added missing drop table sql/ha_ndbcluster.cc: merge with 4.1 Simple optimization: use max() instead of ? : sql/item_func.cc: merge with 4.1 (Added back old variable names for easier merges) sql/opt_range.cc: merge with 4.1 Removed argument 'parent_alloc' from QUICK_RANGE_SELECT as this was not used Added assert if using QUICK_GROUP_MIN_MAX_SELECT with parent_alloc as the init() function can't handle this Changed back get_quick_select_for_ref() to use it's own alloc root becasue this function may be called several times for one query sql/sql_handler.cc: merge with 4.1 change variable 'err' to 'error' as same function had a label named 'err' sql/sql_update.cc: Use multi-update code from 5.0 instead of 4.1 We will fix the locking code shortly in 5.0 to be faster than in 4.1
128 lines
5.2 KiB
Text
128 lines
5.2 KiB
Text
--disable_warnings
|
|
drop table if exists t1, test;
|
|
--enable_warnings
|
|
|
|
|
|
#
|
|
# time functions
|
|
#
|
|
select extract(DAY_MICROSECOND FROM "1999-01-02 10:11:12.000123");
|
|
select extract(HOUR_MICROSECOND FROM "1999-01-02 10:11:12.000123");
|
|
select extract(MINUTE_MICROSECOND FROM "1999-01-02 10:11:12.000123");
|
|
select extract(SECOND_MICROSECOND FROM "1999-01-02 10:11:12.000123");
|
|
select extract(MICROSECOND FROM "1999-01-02 10:11:12.000123");
|
|
select date_format("1997-12-31 23:59:59.000002", "%f");
|
|
|
|
select date_add("1997-12-31 23:59:59.000002",INTERVAL "10000 99:99:99.999999" DAY_MICROSECOND);
|
|
select date_add("1997-12-31 23:59:59.000002",INTERVAL "10000:99:99.999999" HOUR_MICROSECOND);
|
|
select date_add("1997-12-31 23:59:59.000002",INTERVAL "10000:99.999999" MINUTE_MICROSECOND);
|
|
select date_add("1997-12-31 23:59:59.000002",INTERVAL "10000.999999" SECOND_MICROSECOND);
|
|
select date_add("1997-12-31 23:59:59.000002",INTERVAL "999999" MICROSECOND);
|
|
|
|
select date_sub("1998-01-01 00:00:00.000001",INTERVAL "1 1:1:1.000002" DAY_MICROSECOND);
|
|
select date_sub("1998-01-01 00:00:00.000001",INTERVAL "1:1:1.000002" HOUR_MICROSECOND);
|
|
select date_sub("1998-01-01 00:00:00.000001",INTERVAL "1:1.000002" MINUTE_MICROSECOND);
|
|
select date_sub("1998-01-01 00:00:00.000001",INTERVAL "1.000002" SECOND_MICROSECOND);
|
|
select date_sub("1998-01-01 00:00:00.000001",INTERVAL "000002" MICROSECOND);
|
|
|
|
#Date functions
|
|
select adddate("1997-12-31 23:59:59.000001", 10);
|
|
select subdate("1997-12-31 23:59:59.000001", 10);
|
|
|
|
select datediff("1997-12-31 23:59:59.000001","1997-12-30");
|
|
select datediff("1997-11-30 23:59:59.000001","1997-12-31");
|
|
SET @@SQL_MODE="ALLOW_INVALID_DATES";
|
|
select datediff("1997-11-31 23:59:59.000001","1997-12-31");
|
|
SET @@SQL_MODE="";
|
|
|
|
-- This will give a warning
|
|
select datediff("1997-11-31 23:59:59.000001","1997-12-31");
|
|
select datediff("1997-11-30 23:59:59.000001",null);
|
|
|
|
select weekofyear("1997-11-30 23:59:59.000001");
|
|
|
|
select makedate(1997,1);
|
|
select makedate(1997,0);
|
|
|
|
#Time functions
|
|
|
|
select addtime("1997-12-31 23:59:59.999999", "1 1:1:1.000002");
|
|
select subtime("1997-12-31 23:59:59.000001", "1 1:1:1.000002");
|
|
select addtime("1997-12-31 23:59:59.999999", "1998-01-01 01:01:01.999999");
|
|
select subtime("1997-12-31 23:59:59.999999", "1998-01-01 01:01:01.999999");
|
|
select subtime("01:00:00.999999", "02:00:00.999998");
|
|
select subtime("02:01:01.999999", "01:01:01.999999");
|
|
|
|
# PS doesn't support fractional seconds
|
|
--disable_ps_protocol
|
|
select timediff("1997-01-01 23:59:59.000001","1995-12-31 23:59:59.000002");
|
|
select timediff("1997-12-31 23:59:59.000001","1997-12-30 01:01:01.000002");
|
|
select timediff("1997-12-30 23:59:59.000001","1997-12-31 23:59:59.000002");
|
|
select timediff("1997-12-31 23:59:59.000001","23:59:59.000001");
|
|
select timediff("2000:01:01 00:00:00", "2000:01:01 00:00:00.000001");
|
|
--enable_ps_protocol
|
|
|
|
select maketime(10,11,12);
|
|
select maketime(25,11,12);
|
|
select maketime(-25,11,12);
|
|
|
|
# Extraction functions
|
|
|
|
# PS doesn't support fractional seconds
|
|
--disable_ps_protocol
|
|
select timestamp("2001-12-01", "01:01:01.999999");
|
|
select timestamp("2001-13-01", "01:01:01.000001");
|
|
select timestamp("2001-12-01", "25:01:01");
|
|
select timestamp("2001-12-01 01:01:01.000100");
|
|
select timestamp("2001-12-01");
|
|
select day("1997-12-31 23:59:59.000001");
|
|
select date("1997-12-31 23:59:59.000001");
|
|
select date("1997-13-31 23:59:59.000001");
|
|
select time("1997-12-31 23:59:59.000001");
|
|
select time("1997-12-31 25:59:59.000001");
|
|
select microsecond("1997-12-31 23:59:59.000001");
|
|
--enable_ps_protocol
|
|
|
|
create table t1
|
|
select makedate(1997,1) as f1,
|
|
addtime(cast("1997-12-31 23:59:59.000001" as datetime), "1 1:1:1.000002") as f2,
|
|
addtime(cast("23:59:59.999999" as time) , "1 1:1:1.000002") as f3,
|
|
timediff("1997-12-31 23:59:59.000001","1997-12-30 01:01:01.000002") as f4,
|
|
timediff("1997-12-30 23:59:59.000001","1997-12-31 23:59:59.000002") as f5,
|
|
maketime(10,11,12) as f6,
|
|
timestamp(cast("2001-12-01" as date), "01:01:01") as f7,
|
|
date("1997-12-31 23:59:59.000001") as f8,
|
|
time("1997-12-31 23:59:59.000001") as f9;
|
|
describe t1;
|
|
# PS doesn't support fractional seconds
|
|
--disable_ps_protocol
|
|
select * from t1;
|
|
--enable_ps_protocol
|
|
|
|
create table test(t1 datetime, t2 time, t3 time, t4 datetime);
|
|
insert into test values
|
|
('2001-01-01 01:01:01', '01:01:01', null, '2001-02-01 01:01:01'),
|
|
('2001-01-01 01:01:01', '-01:01:01', '-23:59:59', "1997-12-31 23:59:59.000001"),
|
|
('1997-12-31 23:59:59.000001', '-23:59:59', '-01:01:01', '2001-01-01 01:01:01'),
|
|
('2001-01-01 01:01:01', '01:01:01', '-1 01:01:01', null),
|
|
('2001-01-01 01:01:01', null, '-1 01:01:01', null),
|
|
(null, null, null, null),
|
|
('2001-01-01 01:01:01', '01:01:01', '1 01:01:01', '2001-01-01 01:01:01');
|
|
|
|
SELECT ADDTIME(t1,t2) As ttt, ADDTIME(t2, t3) As qqq from test;
|
|
# PS doesn't support fractional seconds
|
|
--disable_ps_protocol
|
|
SELECT TIMEDIFF(t1, t4) As ttt, TIMEDIFF(t2, t3) As qqq,
|
|
TIMEDIFF(t3, t2) As eee, TIMEDIFF(t2, t4) As rrr from test;
|
|
--enable_ps_protocol
|
|
|
|
drop table t1, test;
|
|
|
|
select addtime("-01:01:01.01", "-23:59:59.1") as a;
|
|
select microsecond("1997-12-31 23:59:59.01") as a;
|
|
select microsecond(19971231235959.01) as a;
|
|
select date_add("1997-12-31",INTERVAL "10.09" SECOND_MICROSECOND) as a;
|
|
# PS doesn't support fractional seconds
|
|
--disable_ps_protocol
|
|
select str_to_date("2003-01-02 10:11:12.0012", "%Y-%m-%d %H:%i:%S.%f");
|
|
--enable_ps_protocol
|