Update.sql 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. /* syntax version 1 */
  2. $check = ($arg) -> {
  3. return <|
  4. upyear: CAST(DateTime::MakeTimestamp64(DateTime::Update($arg, 2025)) AS String),
  5. inyear: CAST(DateTime::MakeTimestamp64(DateTime::Update($arg, 148108 as Year)) AS String),
  6. upmonth: CAST(DateTime::MakeTimestamp64(DateTime::Update($arg, NULL, 2)) AS String),
  7. inmonth: CAST(DateTime::MakeTimestamp64(DateTime::Update($arg, 13 as Month)) AS String),
  8. upday: CAST(DateTime::MakeTimestamp64(DateTime::Update($arg, NULL, NULL, 17)) AS String),
  9. inday: CAST(DateTime::MakeTimestamp64(DateTime::Update($arg, 32 as Day)) AS String),
  10. update: CAST(DateTime::MakeTimestamp64(DateTime::Update($arg, 2025, 2, 17)) AS String),
  11. ipdate: CAST(DateTime::MakeTimestamp64(DateTime::Update($arg, 2025, 2, 29)) AS String),
  12. uptime: CAST(DateTime::MakeTimestamp64(DateTime::Update($arg, NULL, NULL, NULL, 19, 24, 9)) AS String),
  13. iptime: CAST(DateTime::MakeTimestamp64(DateTime::Update($arg, NULL, NULL, NULL, 25, 60, 61)) AS String),
  14. unhour: CAST(DateTime::MakeTimestamp64(DateTime::Update($arg, 19 as Hour)) AS String),
  15. inhour: CAST(DateTime::MakeTimestamp64(DateTime::Update($arg, 24 as Hour)) AS String),
  16. unminute: CAST(DateTime::MakeTimestamp64(DateTime::Update($arg, 24 as Minute)) AS String),
  17. inminute: CAST(DateTime::MakeTimestamp64(DateTime::Update($arg, 60 as Minute)) AS String),
  18. unsecond: CAST(DateTime::MakeTimestamp64(DateTime::Update($arg, 9 as Second)) AS String),
  19. insecond: CAST(DateTime::MakeTimestamp64(DateTime::Update($arg, 60 as Second)) AS String),
  20. unmsec: CAST(DateTime::MakeTimestamp64(DateTime::Update($arg, 123456 as Microsecond)) AS String),
  21. inmsec: CAST(DateTime::MakeTimestamp64(DateTime::Update($arg, 1234567 as Microsecond)) AS String),
  22. untzid: CAST(DateTime::MakeTimestamp64(DateTime::Update($arg, 1 as TimezoneId)) AS String),
  23. intzid: CAST(DateTime::MakeTimestamp64(DateTime::Update($arg, 1000 as TimezoneId)) AS String),
  24. |>
  25. };
  26. $typeDispatcher = ($row) -> {
  27. $tm = $row.tm;
  28. return <|
  29. explicit: $check(DateTime::Split($tm)),
  30. implicit: $check($tm),
  31. |>;
  32. };
  33. $input = SELECT CAST(ftimestamp64 AS Timestamp64) as tm FROM Input;
  34. PROCESS $input USING $typeDispatcher(TableRow());