diff --git a/velox/type/Conversions.h b/velox/type/Conversions.h index 01d627a6727e..9cf1e68d000d 100644 --- a/velox/type/Conversions.h +++ b/velox/type/Conversions.h @@ -593,6 +593,14 @@ struct Converter { return fromDateString(v.data(), v.size()); } + static T cast(const Timestamp& t) { + static const int32_t kSecsPerDay{86'400}; + auto seconds = t.getSeconds(); + if (seconds >= 0 || seconds % kSecsPerDay == 0) { + return Date(seconds / kSecsPerDay); + } + } + static T cast(const Timestamp& t, const std::string& sessionTzName) { static const int32_t kSecsPerDay{86'400}; auto ts = t;