interval.c 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #include <grass/dbmi.h>
  2. /*!
  3. \fn
  4. \brief
  5. \return
  6. \param
  7. */
  8. void db_interval_range(int sqltype, int *from, int *to)
  9. {
  10. switch (sqltype) {
  11. case DB_SQL_TYPE_DATE:
  12. *from = DB_YEAR;
  13. *to = DB_DAY;
  14. return;
  15. case DB_SQL_TYPE_TIME:
  16. *from = DB_HOUR;
  17. *to = DB_FRACTION;
  18. return;
  19. }
  20. if (sqltype & DB_YEAR)
  21. *from = DB_YEAR;
  22. else if (sqltype & DB_MONTH)
  23. *from = DB_MONTH;
  24. else if (sqltype & DB_DAY)
  25. *from = DB_DAY;
  26. else if (sqltype & DB_HOUR)
  27. *from = DB_HOUR;
  28. else if (sqltype & DB_MINUTE)
  29. *from = DB_MINUTE;
  30. else if (sqltype & DB_SECOND)
  31. *from = DB_SECOND;
  32. else if (sqltype & DB_FRACTION)
  33. *from = DB_FRACTION;
  34. else
  35. *from = 0;
  36. if (sqltype & DB_FRACTION)
  37. *to = DB_FRACTION;
  38. else if (sqltype & DB_SECOND)
  39. *to = DB_SECOND;
  40. else if (sqltype & DB_MINUTE)
  41. *to = DB_MINUTE;
  42. else if (sqltype & DB_HOUR)
  43. *to = DB_HOUR;
  44. else if (sqltype & DB_DAY)
  45. *to = DB_DAY;
  46. else if (sqltype & DB_MONTH)
  47. *to = DB_MONTH;
  48. else if (sqltype & DB_YEAR)
  49. *to = DB_YEAR;
  50. else
  51. *to = 0;
  52. }