summaryrefslogtreecommitdiff
path: root/sql/item_timefunc.h
diff options
context:
space:
mode:
authorunknown <Sinisa@sinisa.nasamreza.org>2001-12-29 20:56:50 +0200
committerunknown <Sinisa@sinisa.nasamreza.org>2001-12-29 20:56:50 +0200
commit51e3375b0d112990a9f6bc3d6151bdf977fffc45 (patch)
tree1bb77473ce3db09986b5ee160c69ca652a9744d7 /sql/item_timefunc.h
parentf7c69e6dc5da8f76e2f08193edf868455ce617db (diff)
downloadmariadb-git-51e3375b0d112990a9f6bc3d6151bdf977fffc45.tar.gz
DATE,TIME and DATETIME SQL typecasts
Diffstat (limited to 'sql/item_timefunc.h')
-rw-r--r--sql/item_timefunc.h58
1 files changed, 57 insertions, 1 deletions
diff --git a/sql/item_timefunc.h b/sql/item_timefunc.h
index 0c42adb2bd2..b824174edf0 100644
--- a/sql/item_timefunc.h
+++ b/sql/item_timefunc.h
@@ -375,7 +375,6 @@ public:
if (!t_arg) return result_field;
return new Field_time(maybe_null, name, t_arg);
}
-
};
enum interval_type { INTERVAL_YEAR, INTERVAL_MONTH, INTERVAL_DAY,
@@ -414,3 +413,60 @@ class Item_extract :public Item_int_func
const char *func_name() const { return "extract"; }
void fix_length_and_dec();
};
+
+class Item_date_typecast :public Item_str_func
+{
+public:
+ Item_date_typecast(Item *a) :Item_str_func(a) {}
+ const char *func_name() const { return "date_typecast"; }
+ String *val_str(String *a) { return (args[0]->val_str(a)); }
+ void fix_length_and_dec() { max_length=args[0]->max_length; }
+ void print(String *str) { print_op(str); }
+ void make_field(Send_field *tmp_field)
+ {
+ init_make_field(tmp_field,FIELD_TYPE_DATE);
+ }
+ Field *tmp_table_field(TABLE *t_arg)
+ {
+ if (!t_arg) return result_field;
+ return new Field_date(maybe_null, name, t_arg);
+ }
+};
+
+class Item_time_typecast :public Item_str_func
+{
+public:
+ Item_time_typecast(Item *a) :Item_str_func(a) {}
+ const char *func_name() const { return "time_typecast"; }
+ String *val_str(String *a) { return (args[0]->val_str(a)); }
+ void fix_length_and_dec() { max_length=args[0]->max_length; }
+ void print(String *str) { print_op(str); }
+ void make_field(Send_field *tmp_field)
+ {
+ init_make_field(tmp_field,FIELD_TYPE_TIME);
+ }
+ Field *tmp_table_field(TABLE *t_arg)
+ {
+ if (!t_arg) return result_field;
+ return new Field_time(maybe_null, name, t_arg);
+ }
+};
+
+class Item_datetime_typecast :public Item_str_func
+{
+public:
+ Item_datetime_typecast(Item *a) :Item_str_func(a) {}
+ const char *func_name() const { return "datetime_typecast"; }
+ String *val_str(String *a) { return (args[0]->val_str(a)); }
+ void fix_length_and_dec() { max_length=args[0]->max_length; }
+ void print(String *str) { print_op(str); }
+ void make_field(Send_field *tmp_field)
+ {
+ init_make_field(tmp_field,FIELD_TYPE_DATETIME);
+ }
+ Field *tmp_table_field(TABLE *t_arg)
+ {
+ if (!t_arg) return result_field;
+ return new Field_datetime(maybe_null, name, t_arg);
+ }
+};