hive 和 impala 时间参数错误的问题 yyyy-MM-dd
FROM_UNIXTIME(UNIX_TIMESTAMP(M.LAST_UPDATE_DATE), 'yyyy-MM-dd') >='${START_DATE}'
?
LAST_UPDATE_DATE 的日期格式為'2017-02-01 18:47:58' 這種形式的,如果把'
'dd' 改成'DD' 則會(huì)變成當(dāng)年當(dāng)天是該年的第幾天
?
select FROM_UNIXTIME(UNIX_TIMESTAMP('2017-02-01 18:47:58'), 'YYYY-MM-DD')
?'2017-08-27 18:47:58'? 2017-08-239 ?8月27日的當(dāng)年的第?239 天 因此變成 239
?'2017-08-21 18:47:58'? 2017-08-233? 8 月21日的當(dāng)年的第?233 天 因此變成 233
?'2017-01-01 18:47:58'? 2017-01-01 ??1月1日的當(dāng)年的第 1 天 因此變成 01
?'2017-01-02 18:47:58'? 2017-01-02 ??1月21日的當(dāng)年的第 2 天 因此變成 02
?'2017-02-01 18:47:58'? 2017-02-32 ? 2月1日的當(dāng)年的第 32 天 因此變成 32
?
?
正確解析的方法是
FROM_UNIXTIME(UNIX_TIMESTAMP(M.LAST_UPDATE_DATE), 'yyyy-MM-dd')? --注意大小寫
LAST_UPDATE_DATE 格式為?'2017-02-01 18:47:58'
?
----------------
select FROM_UNIXTIME(UNIX_TIMESTAMP('2017-03-01 18:47:58'), 'yyyy-mm-DD')
如果mm 改成小寫則mm 代表的意思就是LINUX 系統(tǒng)時(shí)間 距離1970年相差多少年
?
'YYYY-mm-DD'?? '2017-02-01 18:47:58' 2017-47-32
?????????????? '2017-01-01 18:47:58' 2017-47-01
?????????????? '2017-03-01 18:47:58' 2017-47-60
?
select FROM_UNIXTIME(UNIX_TIMESTAMP('1970-08-27 18:47:58'), 'yyyy-mm-DD')
'YYYY-mm-DD' ?'1970-08-27 18:47:58'? 1970-47-239 不管年月怎么選 ?mm 都是47
'0000-03-01 18:47:58'? 0000-47-61
?
----------------
FROM_UNIXTIME(UNIX_TIMESTAMP(M.LAST_UPDATE_DATE), 'yyyy-MM-dd')
LAST_UPDATE_DATE 格式為?'2017-02-01 18:47:58'
?
?
?
select FROM_UNIXTIME(UNIX_TIMESTAMP('2017-2-1 0:00:00'), 'yyyy-MM-dd')
用hive 才可以 結(jié)果為?2017-02-01
用impala 結(jié)果為 null
總結(jié)
以上是生活随笔為你收集整理的hive 和 impala 时间参数错误的问题 yyyy-MM-dd的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Sqoop 同步数据到mysql, C
- 下一篇: 关于 Notepad++ 崩溃之后正在编