【发布时间】:2018-02-05 12:25:19
【问题描述】:
我有点困惑。当我使用max(send_date) 时,我得到2018-02-04 23:59:51.0。但是,当我使用max(TO_DATE(from_unixtime(UNIX_TIMESTAMP(send_date, 'yyyy-mm-dd')))) 或TO_DATE(from_unixtime(max(UNIX_TIMESTAMP(send_date, 'yyyy-mm-dd')))) 时,我得到2018-01-31!!
为什么?
select max(send_date) from mytable;
Aso,当我使用 WHERE TO_DATE(from_unixtime(UNIX_TIMESTAMP(send_date, 'yyyy-mm-dd'))) = '2018-02-04' 时,我得到了结果 0,但这不是真的。
【问题讨论】:
-
send_date的数据类型是什么?我猜是一个字符串。 -
@GordonLinoff:就我使用
describe mytable所见,它是string。 -
@GordonLinoff:也许我应该将
yyyy-mm-dd调整为包括小时、分钟、秒在内的实际输入格式? -
您只需要比较
yyyy-mm-dd还是需要包括小时、分钟、秒等? -
@Bala:我发现了我的问题,我不得不使用
yyyy-MM-dd而不是yyyy-mm-dd:)))