my_time.h
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:2k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /* Copyright (C) 2004 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
  2.  This program is free software; you can redistribute it and/or modify
  3.  it under the terms of the GNU General Public License as published by
  4.  the Free Software Foundation; either version 2 of the License, or
  5.  (at your option) any later version.
  6.  This program is distributed in the hope that it will be useful,
  7.  but WITHOUT ANY WARRANTY; without even the implied warranty of
  8.  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  9.  GNU General Public License for more details.
  10.  You should have received a copy of the GNU General Public License
  11.  along with this program; if not, write to the Free Software
  12.  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
  13. /*
  14.   This is a private header of sql-common library, containing
  15.   declarations for my_time.c
  16. */
  17. #ifndef _my_time_h_
  18. #define _my_time_h_
  19. #include "my_global.h"
  20. #include "mysql_time.h"
  21. C_MODE_START
  22. extern ulonglong log_10_int[20];
  23. extern uchar days_in_month[];
  24. /*
  25.   Portable time_t replacement.
  26.   Should be signed and hold seconds for 1902-2038 range.
  27. */
  28. typedef long my_time_t;
  29. #define MY_TIME_T_MAX LONG_MAX
  30. #define MY_TIME_T_MIN LONG_MIN
  31. #define YY_PART_YEAR    70
  32. /* Flags to str_to_datetime */
  33. #define TIME_FUZZY_DATE    1
  34. #define TIME_DATETIME_ONLY 2
  35. enum enum_mysql_timestamp_type
  36. str_to_datetime(const char *str, uint length, MYSQL_TIME *l_time,
  37.                 uint flags, int *was_cut);
  38. bool str_to_time(const char *str,uint length, MYSQL_TIME *l_time,
  39.                  int *was_cut);
  40. long calc_daynr(uint year,uint month,uint day);
  41. void init_time(void);
  42. my_time_t 
  43. my_system_gmt_sec(const MYSQL_TIME *t, long *my_timezone, bool *in_dst_time_gap);
  44. void set_zero_time(MYSQL_TIME *tm, enum enum_mysql_timestamp_type time_type);
  45. /*
  46.   Required buffer length for my_time_to_str, my_date_to_str,
  47.   my_datetime_to_str and TIME_to_string functions. Note, that the
  48.   caller is still responsible to check that given TIME structure
  49.   has values in valid ranges, otherwise size of the buffer could
  50.   be not enough. We also rely on the fact that even wrong values
  51.   sent using binary protocol fit in this buffer.
  52. */
  53. #define MAX_DATE_STRING_REP_LENGTH 30
  54. int my_time_to_str(const MYSQL_TIME *l_time, char *to);
  55. int my_date_to_str(const MYSQL_TIME *l_time, char *to);
  56. int my_datetime_to_str(const MYSQL_TIME *l_time, char *to);
  57. int my_TIME_to_str(const MYSQL_TIME *l_time, char *to);
  58. C_MODE_END
  59. #endif /* _my_time_h_ */