我有一个包含epoch时间戳列(transaction_date)的表,如果我有两行并且我想确定它们是否在同一天;没有使用to_date将它们转换为日期。我怎么能这样做,以及在确定它时减少操作的最佳方法是什么。
答案 0 :(得分:1)
一个纪元“timestamp”是一个数字,它应该通过将日期转换为UTC
(如果它有一个时区)而subtracting the epoch生成一个秒数(或毫秒)来生成历元。
如果不转换为日期,您可以除以一天中的秒数(或毫秒)并截断以获取自纪元以来的天数,然后比较这些值:
SELECT TRUNC( transaction_date / ( 24 * 60 * 60 ) ) FROM your_table
如果两行给出的值具有与该纪元相同的天数,那么它们就在同一天。
答案 1 :(得分:0)
使用从时间戳到日期的转换,您可以比较
SELECT
* (all but transaction_date),
(EXTRACT (DAY FROM (transaction_date))*24*60*60) transaction_day
FROM yourtable;