EndOf.sql 710 B

12345678910111213141516171819202122
  1. /* syntax version 1 */
  2. $check = ($arg) -> {
  3. return <|
  4. eoyear: DateTime::MakeTimestamp64(DateTime::EndOfYear($arg)),
  5. eoquarter: DateTime::MakeTimestamp64(DateTime::EndOfQuarter($arg)),
  6. eomonth: DateTime::MakeTimestamp64(DateTime::EndOfMonth($arg)),
  7. eoweek: DateTime::MakeTimestamp64(DateTime::EndOfWeek($arg)),
  8. eoday: DateTime::MakeTimestamp64(DateTime::EndOfDay($arg)),
  9. |>
  10. };
  11. $typeDispatcher = ($row) -> {
  12. $tm = $row.tm;
  13. return <|
  14. explicit: $check(DateTime::Split($tm)),
  15. implicit: $check($tm),
  16. |>;
  17. };
  18. $input = SELECT CAST(ftimestamp64 as Timestamp64) as tm FROM Input;
  19. PROCESS $input USING $typeDispatcher(TableRow());