summaryrefslogtreecommitdiff
path: root/sql/time.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sql/time.cc')
-rw-r--r--sql/time.cc56
1 files changed, 56 insertions, 0 deletions
diff --git a/sql/time.cc b/sql/time.cc
index 3c654de23bb..5b12aacf84a 100644
--- a/sql/time.cc
+++ b/sql/time.cc
@@ -24,6 +24,30 @@
/* Some functions to calculate dates */
#ifndef TESTTIME
+
+LEX_STRING interval_type_to_name[INTERVAL_LAST] = {
+ {(char *) STRING_WITH_LEN("YEAR")},
+ {(char *) STRING_WITH_LEN("QUARTER")},
+ {(char *) STRING_WITH_LEN("MONTH")},
+ {(char *) STRING_WITH_LEN("DAY")},
+ {(char *) STRING_WITH_LEN("HOUR")},
+ {(char *) STRING_WITH_LEN("MINUTE")},
+ {(char *) STRING_WITH_LEN("WEEK")},
+ {(char *) STRING_WITH_LEN("SECOND")},
+ {(char *) STRING_WITH_LEN("MICROSECOND")},
+ {(char *) STRING_WITH_LEN("YEAR_MONTH")},
+ {(char *) STRING_WITH_LEN("DAY_HOUR")},
+ {(char *) STRING_WITH_LEN("DAY_MINUTE")},
+ {(char *) STRING_WITH_LEN("DAY_SECOND")},
+ {(char *) STRING_WITH_LEN("HOUR_MINUTE")},
+ {(char *) STRING_WITH_LEN("HOUR_SECOND")},
+ {(char *) STRING_WITH_LEN("MINUTE_SECOND")},
+ {(char *) STRING_WITH_LEN("DAY_MICROSECOND")},
+ {(char *) STRING_WITH_LEN("HOUR_MICROSECOND")},
+ {(char *) STRING_WITH_LEN("MINUTE_MICROSECOND")},
+ {(char *) STRING_WITH_LEN("SECOND_MICROSECOND")}
+};
+
/* Calc weekday from daynr */
/* Returns 0 for monday, 1 for tuesday .... */
@@ -909,4 +933,36 @@ calc_time_diff(TIME *l_time1, TIME *l_time2, int l_sign, longlong *seconds_out,
}
+/*
+ Compares 2 TIME structures
+
+ SYNOPSIS
+ my_time_compare()
+
+ a - first TIME
+ b - second time
+
+ RETURN VALUE
+ -1 - a < b
+ 0 - a == b
+ 1 - a > b
+
+ NOTES
+ TIME.second_part is not considered during comparison
+*/
+
+int
+my_time_compare(TIME *a, TIME *b)
+{
+ my_ulonglong a_t= TIME_to_ulonglong_datetime(a);
+ my_ulonglong b_t= TIME_to_ulonglong_datetime(b);
+
+ if (a_t > b_t)
+ return 1;
+ else if (a_t < b_t)
+ return -1;
+
+ return 0;
+}
+
#endif