我有三列的数据类型为TIMESTAMP(6),我希望找出这三个时间戳的最小值。在任何给定时间,三列中至少会有1个非空数据点。
我尝试在网上找到替代方法,但是在此问题上找不到与时间戳比较有关的任何内容。有一种使用合并的解决方案,它适用于数据类型的日期,但不适用于时间戳。
答案 0 :(得分:0)
我猜您是在问如何尝试将LEAST
与时间戳配合使用?我不知道为什么Teradata对此没有做任何事情。对于时间戳,我只是将它们转换为varchar。空值使它变得更丑陋,因为您必须将它们与某些东西结合在一起,具体取决于您是否希望空值小于所有其他值。
select
least (
coalesce(null,'9999-12-31'), --if you want nulls to not be the least
cast(current_timestamp as varchar(32)),
cast(timestamp '2018-01-01 05:00:00' as varchar(32)))
在真实的查询中,您最终将合并并转换为要馈入最小函数的每一列。
编辑: 我可能应该补充一点,这在YYYY-MM-DD日期有效,其他格式可能无法正确排序。