time.sql 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. --
  2. -- TIME
  3. --
  4. CREATE TABLE TIME_TBL (f1 time(2));
  5. INSERT INTO TIME_TBL VALUES ('00:00');
  6. INSERT INTO TIME_TBL VALUES ('01:00');
  7. INSERT INTO TIME_TBL VALUES ('12:00');
  8. INSERT INTO TIME_TBL VALUES ('12:01');
  9. INSERT INTO TIME_TBL VALUES ('23:59');
  10. INSERT INTO TIME_TBL VALUES ('11:59:59.99 PM');
  11. SELECT f1 AS "None" FROM TIME_TBL WHERE f1 < '00:00';
  12. -- Check edge cases
  13. SELECT '23:59:59.999999'::time;
  14. SELECT '23:59:59.9999999'::time; -- rounds up
  15. SELECT '23:59:60'::time; -- rounds up
  16. SELECT '24:00:00'::time; -- allowed
  17. SELECT '24:00:00.01'::time; -- not allowed
  18. SELECT '23:59:60.01'::time; -- not allowed
  19. SELECT '24:01:00'::time; -- not allowed
  20. SELECT '25:00:00'::time; -- not allowed
  21. --
  22. -- test EXTRACT
  23. --
  24. SELECT EXTRACT(MICROSECOND FROM TIME '2020-05-26 13:30:25.575401');
  25. SELECT EXTRACT(MILLISECOND FROM TIME '2020-05-26 13:30:25.575401');
  26. SELECT EXTRACT(SECOND FROM TIME '2020-05-26 13:30:25.575401');
  27. SELECT EXTRACT(MINUTE FROM TIME '2020-05-26 13:30:25.575401');
  28. SELECT EXTRACT(HOUR FROM TIME '2020-05-26 13:30:25.575401');
  29. SELECT EXTRACT(DAY FROM TIME '2020-05-26 13:30:25.575401'); -- error
  30. SELECT EXTRACT(FORTNIGHT FROM TIME '2020-05-26 13:30:25.575401'); -- error
  31. SELECT EXTRACT(TIMEZONE FROM TIME '2020-05-26 13:30:25.575401'); -- error
  32. SELECT EXTRACT(EPOCH FROM TIME '2020-05-26 13:30:25.575401');
  33. -- date_part implementation is mostly the same as extract, so only
  34. -- test a few cases for additional coverage.
  35. SELECT date_part('microsecond', TIME '2020-05-26 13:30:25.575401');
  36. SELECT date_part('millisecond', TIME '2020-05-26 13:30:25.575401');
  37. SELECT date_part('second', TIME '2020-05-26 13:30:25.575401');
  38. SELECT date_part('epoch', TIME '2020-05-26 13:30:25.575401');